Ok, but then you have to add a lot of new entires to the enums, I would think it would be easier to move the entries in the xml to fit the enums so that the enum in dll is as small as possible.
If you move these down in the enums:
MISSION_RECORD_TALE_ORAL
MISSION_RECORD_TALE_WRITTEN
MISSION_ANIMAL_COMBAT
MISSION_ANIMAL_STUDY
MISSION_ANIMAL_SACRIFICE
then you still to add 15 entries between MISSION_ASSASSINATE and MISSION_RECORD_TALE_ORAL.
And you would still need to have 5 entries between MISSION_BUTCHER and MISSION_JOIN_CITY_POPULATION (currently wrongly named in dll enumerator as MISSION_BARBARIAN_ENVOY), cause something has to replace those you moved.
EDIT:
Had a look at MISSION_JOIN_CITY_POPULATION, and it isn't referenced by the dll a single time, therefore it doesn't need to be in the enum at all, and the xml entry for MISSION_JOIN_CITY_POPULATION should be moved to bellow MISSION_ASSASSINATE, which is the last mission used by the dll in any way.
MISSION_BARBARIAN_ENVOY should then just be deleted from the enum list because that mission doesn't really exist and we just moved the mission that used to occupy that slot to below the rest of the enum list.
There is one dll reference to MISSION_BARBARIAN_ENVOY that should also be deleted, this line within CvGameCoreUtils.cpp:
case MISSION_BARBARIAN_ENVOY: szString = L"MISSION_BARBARIAN_ENVOY"; break;