I'm not exactly sure what you meant by break the world up into parts
The models and data that describes how they are populated - rather than create and maintain the entire world at once, break it down into more manageable chunks.
I should make a tiny world to test out all the functions I want the game to do...
You need to get a feel for what you can do and how you can do it. This kind of project brings you a real chicken and egg situation... should the content be design-led (ie you know what gameplay elements you want and will code and code and code until you either get them implemented or die trying) or should it be technology-led (ie you curtail your artistic vision to fit within the constraints you absolutely know you can achieve). For me it's a no-brainer... if you can't code "it" within a reasonable time frame then you can't do "it", can't have "it" and should forget about "it". So I'm sugesting that you spend a little time exploring how you might implement the most fundamental systems of this kind of game, because then you'll at least have a basis for a design.
You should be prepared, also, for the possibility that your first four or five attempts at this aren't going to go particularly well. It's a learning experience and this is another reason to keep things modest until those unexpected hiccups (and you
will experience unexpected hiccups) have been encountered and dealt with.
you want me to create at least one of each type of object and npc
Well, remember that your actual game will have more than one enemy/npc etc so the system you implement at the very start should at least be extensible. Most folk I imagine would instinctively go for types; myself and a few others prefer to handle objects via arrays.
Then you want me to write down all my ideas for the bigger game, and if everything works as planned in the mini quest, start working on the bigger game, right?
Heh, I'm not setting you homework - you can approach this how you please, but I think a lot of people will agree with me when I say that, for a project like the one you are considering, planning is everything.
Also, you talked about freeing the old map and loading a new one. I have some ideas, but what is the way you do that?
Off the top of my head - in the main game loop check to see if the player has entered (ie is within a certain distance of) a portal and, if so, whizz off to a function that checks which map the portal leads to and loads it in place of the current one. Before returning, the function would also check to see where the portal places the player on the new map and which portal(s)/enemies/npc's/objects/etc belong to this map so it can place all of them, too.
One more thing (although there is sure to be more later) If I want to make an inventory, is that just like an array of types? (if that's even possible to use arrays and types together. I've avoided using arrays up to this point and know nothing about them)
I don't use types. Were I writing a Zelda-type adventure, however, I might decide to finally learn how they work, because they might be highly advantageous in such a context and I wouldn't want to disadvantage myself. You're probably best advised to check out the blitzcoder.com showcases, look for a game with a similar remit and quiz the author directly (hoping they're not too grumpy). And I dont mean ask them to teach you types, just try and gain the benefit of their experience by getting some info on workable methodologies.