The floors are optional and if a given floor is not found 0,0 will be returned.
This lib came about as a result of several addons needing the data, and simply copying and pasting them in each copy occupies around 44k of memory.

LibMapData now supports Mapchanged callback event.
Sample usage:

mapfiles=LibStub("LibMapData-1.0");mapfiles:RegisterCallback("MapChanged",function(event,map,floor,w,h)print("Map is now "..map)end

Will this library be updated for Cataclysm during Beta, or only after release? I'd like to switch my Astrolabe over to using this library, and I'll either go and start surveying the map sizes and offsets myself (shouldn't be too hard, after all, two coord points per zone remapped to world map = zone size and offset) and post those for you, or just use whatever you have :)

Having the coordinates in a library is very useful in itself already but what's often needed with them is to keep track of the current zone. It's mostly just listening to the zone changed events but there are a few peculiarities in it. Might be useful to have that built in the library as well.