A trick I'm using to save tilespace for my tileset (and add more variety) is to seperate the house windows and turn them into graphics. Then you have extra space for new wall tiles, and you can have a million different window designs in all sorts of colors sizes and place them however you want on the walls.
I also join the npc window graphics to a "windows" class that allows for having lights shine through the windows at night.
Also if you're going to do just recolors of existing roof tiles or other tiles, it's almost better to just make them into seperate tile pieces and addtiledef them over top of the defaults... Like instead of having a red roof and blue roof and yellow roof in the tileset that are all the same shape/style... just have a red roof and if you want a different color, make them in a seperate graphic and then just have it tile over the red roof tiles.
Of course you're going to run into the problem of "what if I want multiple color roof tiles in one level?"... then it's best to have at least two sets of roof tiles in your tileset. (I use red and blue) This way you can have at least two different colors in each level if needed.