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

If you look at the API documentation for GetPlayerMapPosition() you will see that it returns (0,0) for all classic instances except for Northrend; so I believe that is not the case. As I said, it was working in the PTR but i think i had some of the values mixed up.

I'm getting the same as Remota. I had it working in the PTR at one point but now it's not working showing placements for PoH and CoH from GridStatusPriestAoE. Given the maps are so small it really doesn't matter too much but it's nice to have an optimal placement for the spells.