Here's where the real fun starts :) !
The map files will be of the size:
[(number of tiles) x (4 bytes)] + 8 bytes
The first two 32 bit ints will be the width and height respectively. The rest is an array of 32 bit ints representing the tiles.
Here's the breakdown:
-4 bits represent the main tile type
-15 bits represent different things depending on the main type
-12 bits for "smoothers" on coastlines
-3 bits for river moouths
-5 bits for road and railroad
-5 bits for river
-2 bits irrigation, farming, mining
-2 bits for resources
That leaves 11 bits to play with