Well let's think about this.
A 30x30 map is 900 tiles.
Every tile can have one of five floor states: four different colors and empty (unexplored). That's a 3-bit number.
Every tile also essentially has two walls associated with it, like this:
It's actually a little less than that if you think about it because the edges of the map don't have walls. In any case that's two more bits, each wall has an on/off state.
There are 44 icons that can be placed in any given square, one at a time. There are also a couple unique icons that can be forcibly placed in a space like the geomagnetic pole. That's one 6-bit number.
So every tile on the map has 11 bits associated with it.
To simplify things, they'd probably just use two bytes (16 bits) for this, meaning every 30x30 map is 1800 bytes, or 1.75 kilobytes. You can fit
585 floors in one megabyte.
If they only use the necessary 11 bytes, the maps are 1237 bytes, or 1.2 kilobytes. You can fit
853 of these floors in one megabyte.
That's before compression. Typically you would compress any floors that aren't currently being used, and when you change floors you compress the one you're on and decompress the new one. You can probably get a pretty good compression ratio on these things even with a simple method like RLE.
Also a lot of the maps in this game aren't even 30x30!
So I dunno, I'm pretty sure they could make the games a lot bit bigger and instead they choose not to, to keep enemy designs fresh and not to have too many floors of the same stuff, and to keep stratum designs and music from wearing on you for too long.