Use additional memory map mirrors for 32-bit

Well, use them always for simplicity, but this works around (apparent?) 32-bit limitations on mmap() size for Android and Linux.

I'm not sure if we actually want to do this, since I don't know *why* this happens.  But, creating separate maps does work around the problem.  I went with 31MB because I didn't know if 32MB would work everywhere (40MB even does not work for @xsacha.)  This is a good enough way for discussion anyhow...

Not tested on iOS but I suppose it'd fix it there too.

The only thing I could find was FCSE, which allows 128 32MB blocks for fast thread switching or something, but it seems like it's not in modern usage.  And it doesn't match the 40MB limit anyway.

-[Unknown]