This is a lot simpler than you are all making it out to be. A normal map can be easily generated from a grey scale heightmap.. just make your greyscale map and use the bmap_to_normal function to convert it. Alternatively you can use a bumpmap to normal map converter.. these progs are available on the internet.