Never having worked AT ALL with custom maps, I wonder, what were/are the problems with the system summed up?
The walkmask is stored as a text string within the map file and has to be converted to a GM sprite before it can be used for collision checking. Before, this was done by creating a surface in video memory, drawing the walkmask to that and then converting the surface to a sprite. The problem with that is that surfaces are unreliable; they can "vanish" at any time because the video memory might be needed for something else. If that happened before it was converted to a sprite, it led to the "falling through the floor" bug. There was also no check whether the surface has been created at all, and trying to access a surface that doesn't exist caused weird errors to happen down the line.
Now, the walkmask is decoded in GG2DLL and written to a temporary .png file which is then loaded as a sprite in GM. It's a lot faster because the decoding is done in C code now.