Hey Androk,
First of all I have no idea what an MMORPG is, but I think I can give you some basic information without nowing that!

I would start by making the basic map-engine, with that I mean, when you want to make a 2D game you may consider a tile engine, but sometimes one bitmap to fill the entire screen might do just what you need. In the last case you might use objects or sprites for walls or things like that, in the first case (tile-engine) you have to use something like an array to store the tile-information in. In my rectangular-engine (tile engine) I used records to store tile information in and created multidimensional dynamic arrays of the recordtype as map. For Example:

// The Record
Type TTile = Record
Index : Integer; // Image Index
Passable : Boolean; // Sprites collide if True or pass if False
End;

var Map : Array of Array of TTile; // The Map


Then you can write a drawing procedure that passes all of your tiles and draws them at their predifined position. If you use tiles that are 32x32 pixels than you could determine the position by using (pseudo):
For Y := 0 To MapSizeY do
For X := 0 To MapSizeX do
Begin
TileX := X * 32;
TileY := Y * 32;
End;

Of course before you can use a tile-engine in your game you'll have to have an editor, but that's pretty much the same work. To save the files you can simply store the multidimensional array into a file.

Only when all of that is done, then I would look into placing a character on the map and making it move and for that I would use objects and a simple sprite engine... So basically what you want to do is create two things a tile-engine and a sprite-engine.

Hope this helps