LordEnglish: Hey, all I can say is OOP maps is a solved problem, the way we deal with entities may have to change. That said Sphere's API really does simplify a lot, but it will always be an amateur API in my mind.
That said even if you don't go OOP on maps you can still have a system where you load up a map and draw potions of it on screen, because I know that is a hard problem to solve in Sphere presently.
// basically you can only call this inside a MapEngine context
// it loads the map, puts it's characters into the same entity batch as the map engine,
// then draws it's tiles and obstructions starting from the specified offset (in this case 640x0)
// functions like DoesPersonExist are still preserved and you still can't make assumptions on the existence of entities.
var map = LoadMap("map.rmp", 640, 0);
The camera is the hardest part to figure out, because now we are giving freedom as to where you put the map. It's easier in fact to tell Sphere to instead, put the map on the edge of another map, moving or removing the edge script and making the camera realize there is in fact more to scroll to.
// what it looks like using positional constants, which is very much a Sphere-like thing to do:
var map = LoadMap("map.rmp", MAP_EAST);