Very briefly...
First, add textures:
The quick and messy way: (just for testing)
Use
n008s tutorial to add the new texture to materials.brf
and texture_names.brf
The time consuming but right way:
Save the new texture name and material in new file(s) (you can put both in 1 file, but its easier to just make it 2 separate ones) in <your module>/Resource. These files should have ONLY your new texture (or textures if adding mode models)
Add "load_module_resource = <file_name>" for each to your module_info.txt
Copy your materials file over the material.brf file in CommonRes (back up the old one) then copy the old one back once you have finished the next step.
Adding the model
Load up Lurbs BRFview, open up any brf file, like "strategy_misc_data.brf" or something.
Delete all the models in there, import your new one, set the texture and name, save the file into your module Resource directory, and add a line in module_info.txt for this new file.
Also add the same new line to editorData\resources.txt (only add the brf with the mesh, not your new materials files here)
Remember to copy back the old materials file
Final step
Open map_icons.txt
Add 1 to the 1st number
Then add a line at the bottom: <models name> <scale> 5 (5 is just the sound id, and since the town doesnt move this makes no difference)
Now you can load up the map editor, select a town and press the + key (not the + button on the GUI) to get your new map icon, save the map, and pray that it now shows up in game
There we go... Hope I remembered it all, that's just off the top of my head. Have fun