Hi Kahn,
Glad you asked! Yes there is. I've been wanting to document it and properly support it for some time. Since you asked, I'll take this opportunity to give a tiny crash course, for you and for anyone else who runs across this topic.
Please note that custom maps are not supported in the demo, since you need to use the Custom Game option to launch one. And unfortunately there's no map editor, so you have to edit text files by hand - not very intuitive, I know.
Maps are stored as .ini files in the folder [MayhemIntergalactic]\data\base\maps (replace [MayhemIntergalactic] with the game's installation directory, e.g. C:\Program Files\MayhemIntergalactic). The name of the file reflects the name of the map; e.g. "Milky Way.ini" will show up in-game as the map "Milky Way".
The format goes something like this. First you have a small section headed "[map]" which describes the details of the map.
[map]
name=Name of map (normally the same as the filename)
author=Your name. (optional)
description=A short description of the map, ideally including the recommended number of players. (optional)
The author and description fields aren't used in the game yet. I hope to change that in future.
Following that, you have as many "[planet]" sections as you like. Each "[planet]" section creates one planet. For example:
The "x" parameter sets the horizontal location of the planet. Higher values are further to the right, lower values are further to the left. It's measured in pixels of a 1600x1200 screen resolution, at the default zoom level. It can take negative values as well as positive ones. It must be a whole number.
The "y" parameter is the same except it sets the vertical location of the planet. Higher values go down, lower values go up.
There are also some optional parameters. "name" explicitly sets the name of the planet (if omitted, one is chosen from the file data\base\planetnames.txt). "startpriority" makes a planet more (positive) or less (negative) likely to get picked as a starting planet for some player. "baseproduction" sets the base level of production (ships built per turn) for the planet. "factoryproduction" sets the extra production gained per factory level. (Note that the planet's production at level 1 is baseproduction + factoryproduction.) "nativesproduction" sets the production level of the planet while natives control it.
NB: A few of these may not work until v1.2 is out, which will be soon.
For example:
[planet]
name=Kahn's Planet
x=-123
y=500
baseproduction=10
factoryproduction=1
nativesproduction=5
startpriority=-1
This planet will be called Kahn's Planet and be placed 123 units to the left of centre and 500 units below the centre. While natives control it, it will build 5 native ships per turn. While a player controls it and it is Level 1, it will produce 10+1 = 11 ships per turn. If it gets upgraded to Level 2, it will produce 10+1+1 = 12 ships per turn. And so on.
The startpriority of -1 means that no player will start in control of this planet, unless there are no available planets with a startpriority of 0 (default) or higher.
Version 1.2 will introduce an additional feature for custom maps, the "rift". A rift is basically a wall. You can't move ships through it. This opens up some interesting additional possibilities for map design. I'll elaborate on how to put rifts in your map after v1.2 is released.
For examples, just look in the data\base\maps folder and you'll see all the maps that shipped with the game. Feel free to open them up to see how they're constructed.
Hope that helps, and sorry for drowning you in so much information!