Re-writing the map format and the map loader

A bit of a step back, but probably useful for later