I found that in regions .esf the file format is listed at the very bottom and from my skim off the whole file it appears valid. I think it is in fact based off XML because of this structure.
Code:
root
theater_and_region_keys
theater_region_keys
theaters
climate_map
wind_map
transition_areas (defining regions of the map that allow you to port to other theaters)
transition_links (defining how the different areas link together)
black_shroud_outlines (???)
region_data
vertices (This seems to be where the actual region geometry on the actual map is defined, the lookups seem to be just for the gui)
regions
areas
faces
outlines
connectivity
settlement_and_slots
slot_descriptions
roads
links
railways (Railways :) )
canals (I assume impassable rivers unless bridge exists)
mountain_data
MOUNTAIN_OUTLINES
OUTLINE_BLOCK
BOUNDS_BLOCK
climate_indices
land_indices (What part of the map is land?)
sea_indices (What part of the map is sea?)
query_info
node? cell? (bottom_left, top_left, bottom_right, top_right)
ground_types (Mapping the land to certain battle terrains?)
groundtype_indices_list
groundtype_index
map_heights
MAP_HEIGHT_AREA
trade_nodes (Probably the nodes in the trade theaters)
bridges (Probably the yellow arrow bridges and normal bridges)
Also I started to line up the different bits for the theater_and_region_keys section to see if any patterns exist which they do.
Code:
Header CEAB 0000 0000 0000
Region ID 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
-----------------------------------------------------------------------
Americas Regions
(Theater Header)00 31 00 0C 00 00 3E C4 00 00 00 00 0C 00 00 AA C3 00 00 E6 43 01 00 81 03 00 00 EA 06 00 00 2A 00 00 00 C4 00 00 00 0E 0D
-----------------------------------------------------------------------
french_guyana 00 0C E2 05 BA C3 EB 0C 03 42 EC 00 00 00 0E 0C
dutch_guyana 00 0C 18 32 C4 C3 74 83 21 42 1A 01 00 00 0E 0F
trinidad_tobago 00 0C 5C 89 D9 C3 CA 00 94 42 44 01 00 00 0E 0D
new_andalusia 00 0C E2 A3 ED C3 DA D2 91 42 6A 01 00 00 0E 0B
new_grenada 00 0C A3 37 04 C4 C4 09 08 42 8C 01 00 00 0E 09
new_spain 00 0C C3 15 30 C4 C7 16 0A 43 A4 01 00 00 0E 04
cuba 00 0C B5 51 12 C4 F8 62 22 43 C2 01 00 00 0E 07
jamaica 00 0C B4 75 09 C4 A7 0C 01 43 E0 01 00 00 0E 07
bahamas 00 0C A0 E9 08 C4 64 96 2F 43 04 02 00 00 0E 0A
hispaniola 00 0C 8E DD F8 C3 8D A4 05 43 22 02 00 00 0E 07
curacao 00 0C 85 EA F4 C3 6E 3B AD 42 52 02 00 00 0E 10
windward_islands00 0C B9 20 D9 C3 C4 4E D0 42 80 02 00 00 0E 0F
leeward_islands 00 0C F6 13 DC C3 07 EC FA 42 A4 02 00 00 0E 0A
new_france 00 0C 2C 21 FD C3 F0 99 A7 43 CA 02 00 00 0E 0B
new_england 00 0C F8 76 FD C3 7A 84 96 43 F8 02 00 00 0E 0F
-----------------------------------------------------------------------
European Regions
(Theater Header)00 32 00 0C 00 00 32 C3 00 00 0C 43 0C 00 00 DC 43 00 00 02 44 01 00 81 03 00 00 9D 10 00 00 4D 00 00 00 39 07 00 00 0E 07
-----------------------------------------------------------------------
england 00 0C F6 58 46 3F 05 5C B7 43 55 07 00 00 0E 06
france 00 0C F8 2E 84 41 92 88 AD 43 6F 07 00 00 0E 05
spain 00 0C 28 EB D0 C1 C0 C4 8F 43 8F 07 00 00 0E 08
-----------------------------------------------------------------------
Indian Regions
(Theater Header)00 33 00 0C 00 00 DC 43 00 00 A0 41 0C 00 00 2A 44 00 00 8C 43 01 00 81 03 00 00 F4 12 00 00 12 00 00 00 F0 10 00 00 0E 09
-----------------------------------------------------------------------
hyderabad 00 0C 44 83 0B 44 64 FB F6 42 0C 11 00 00 0E 06
ceylon 00 0C EF A9 0F 44 E6 1A 70 42 28 11 00 00 0E 06
mysore 00 0C 4C F3 07 44 B1 35 AD 42 44 11 00 00 0E 06
orissa 00 0C 16 09 18 44 58 24 10 43 5E 11 00 00 0E 05