First, strip those >>> and <<<. The data is base 64 encoded as defined by RFC 4648 (or 3548, 2535, 2045, 1421, et al.). All numerical values are stored in unsigned little-endian format. I'll use the terms "int" to refer to 4 byte numbers and "short" to refer to 2 byte numbers. Strings are Pascal-style int length prefixed strings. The format described below is valid at least for Factorio 0.14.x, other versions may use a different version scheme.
Map Exchange String format
The version number of the Factorio that generated the string is stored as a series of four shorts - one for each part of the version number (and then a forth unknown). This method of serializing the version number is seen elsewhere in Factorio files. In the map exchange string, the version number is used to determine the formatting scheme. We'll use version 0.14.21 as example.
- Short - Factorio's major version number. (e.g. 0)
- Short - Factorio's minor version number. (e.g. 14)
- Short - Factorio's patch version number. (e.g. 21)
- Short - A forth unknown part of the version number. My Factorio sets this to 0, and doesn't seem to care what it is.
- Byte - Water frequency.
- Byte - Water size.
- Ore_def[int] - An array of ore definitions (described later). The array length is stored as an integer prefix. Factorio doesn’t care what order these are in, but it always alphabetizes during export. Vanilla has six ores: coal, copper-ore, crude-oil, enemy-base, iron-ore, and stone. Unknown ores are ignored and missing ores are set to their defaults.
- Int - Map seed.
- Int - Map width.
- Int - Map height.
- Byte - Starting area size.
- Byte - Peaceful mode. Enabled if set to 1, disabled otherwise.
- Bytes - 0.15 Map settings. See wiki page for details.
- Int - CRC32 checksum of all preceding data, as defined by ANSI X3.66 / FIPS 71 / ITU-T V.42 (the same one used by zlib, ethernet, etc.)
See the wiki about map generation for more info about frequency, size, and richness.
- String - Ore name.
- Byte - Ore frequency.
- Byte - Ore size.
- Byte - Ore richness.
These are the values used for the frequencies, sizes, and richnesses of ores, water, and the starting area size. None is a valid value for all three options. Anything greater than 5 will crash the game!
- 0 = None / None / None
- 1 = Very Low / Small / Poor
- 2 = Low / Small / Poor
- 3 = Normal / Medium / Regular
- 4 = High / Big / Good
- 5 = Very High / Big / Good