The design I've been using for both maps and colliders is a JSON string, and then if there is any binary data, this is followed by a null character, and then the bin data. If there is no binary data then the file is just a normal JSON file.
This is very simple, and I figure some tool or plugin will arise that allows editing of the JSON text info without destroying the binary data. If the size of the JSON string changes, that's okay because all the offsets that point to the binary data are counted from the start of the data.
The Map:Reload() method is changed to only use one stream, and the example below is now using a file:
https://www.ultraengine.com/learn/Map_Reload?lang=cpp
The update is available now and I have tested it.