Back to the setup with ACE details. My goal was to reduce the number of packages that a player would need to download when joining the server normally and only if CTF-XV maps were voted would they need to download the additional packages. This is why I didn't use the failsafe setup.
I have always just used ACE's auto configure packages in the past. My first attempt was to turn off auto configure and manually list all the packages that the server might send, the normal ones and the additional ones that are sent when CTF-XV maps are voted. For some reason when I did this my player would just timeout on ACE checks. Maybe I did something wrong when trying to configure things manually, I'm not sure.
Finally, I found the following in the ACE documentation:
For most people, ACE will work fine with the default settings. Should
you run any custom mods that perform rendering or input operations and that
are not recognized by ACE, then add the following section to your server's
UnrealTournament.ini file:
[ACEv12_AutoConfig.ACEAutoConfigActor]
UPackages[0]=
UPackages[1]=
Then add your mod to this list. If you run a mod called MyMod.u for example,
simply add UPackages[0]=MyMod.u. You can add up to 32 packages to this list.
So, I turned ACE auto config packages back on (bAutoConfig=True) and added the following to the server's ut.ini:
[ACEv12_AutoConfig.ACEAutoConfigActor]
UPackages[0]=FixGun
UPackages[1]=XChopVeh
UPackages[2]=XFastWarShell
UPackages[3]=XJumpPad
UPackages[4]=XStatVeh
UPackages[5]=XTreadVeh
UPackages[6]=XVehicles
UPackages[7]=XWeaponLocker
UPackages[8]=XWheelVeh
UPackages[9]=xZones
Thanks to AnthraX for making ACE configurable in this way.
Note: This might not work on all XV maps as Buggie points out here: