Trivia
The map I started building this on ended up having snow biomes across almost all of Hoenn. Not only did this cause the map to be covered in snow every time a storm brewed up, rain was impossible. This was a problem since I thought rain would be a really nice touch in Hoenn, especially on Route 119 where it rains all the time. Therefore I went in and changed the seed of the map, since that's what biomes are based on, and ended up getting no snow biomes in any part of the Pokemon map, and most of Kanto ended up being dry. Once 1.2 was released, biomes were stored in the map itself, so I got a program to permanently fix all biomes. This means most areas will always be snow-free, Snowpoint City will always be snowy, and deserts never have rain.
The first town I worked on was Pallet Town (of course) and I did everything by hand at that point. I didn't even have logs under the long grass leaf blocks, since at that point leaf decaying was broken. When Notch fixed it, I had to go and add logs under every single patch of leaf-grass in the map. With 1.8, user-placed leaf blocks no longer decay, but I'm still keeping the logs, just in case.
When I finished Cherrygrove City in Johto, I wrote a craftscript for Bukkit's WorldEdit plugin that allowed me to select an area of logs on the ground and it would turn each one into a Pokemon-style tree, which is MUCH faster than doing it by hand.
Originally, the Goldenrod City Magnet Train station was much more sophisticated, using Bukkit's Minecart Mania plugin, mainly for the boosters necessary to the train. Once Notch added in boosters, however, I didn't need Minecart Mania and redesigned the station to remove the dependency.
After I was almost completely done adding areas with tall grass, I decided to get around to writing a script for WorldEdit to automatically do it for me. The problem is, logs need to be added under the leaves to support them or they will decay (unless I manually place each leaf block). This is by far the most time-consuming part of adding tall grass, since they have to be placed close enough together so that no leaf is ever more than four blocks away from a log. But I don't like to place the logs too close, otherwise you see them through the leaves and it's a bit ugly. I ended up taking a Javascript implementation of the A* pathfinding algorithm and hooking it into a WorldEdit script that scans the selection for green wool, and turns them into pits, puts logs at the bottom only where they're necessary, and filling the rest with leaves. This greatly sped up tall grass creation, but as I said, I was almost completely done with that when I finally finished.
When I started adding every interior to Kanto, I knew I needed to find a faster way to build the fake exteriors you see outside the doors before you're teleported back to the overworld. Before, I had to copy the area around the door in the overworld, paste it in near the interior door, replace the (usually stone or dirt) walls of that fake area with light blue wool (to represent the sky/distance), and add glowstone lighting to the ceiling where you couldn't see it. I write another WorldEdit script to do it for me, and it now takes much less time to create an interior. This makes it realistically possible to add every single interior to the Pokémon world!