We do a lot of the surface detail bump maps in Photoshop, using the Nvidia normal mapping plugin, it just takes a grayscale image and converts it into normal map. You can just overlay this over you original normal map in Photoshop to do the surface detail. It's also real easy to adjust the power of the surface bumps just by adjusting the opacity of this layer.

Often it can also be the cage itself that does not lend itself to a proper process. Specifically, if you are optimizing your hi poly and low poly elements by removing all the areas of the lowpoly that are mirrored on the UV's, like if there was a rectangle and the long sides were mirrored, you had deleted the additional side so you have an open face. Sometimes this or comparable setup's to this can cause the cage to be skewed and changing the size of it will only cause it to become more skewed.

I often rely on not using the cage so that max's way of grabbing information is based more on firing off in a number of directions based on the normals of each of the lowpoly faces which is more similar to what is done in SHtools or more recent versions of 3D Studio Max.

It's good to do your test process's without any Supersampler options enabled and at a smaller size until you have ironed out as many of the kinks in your setup's grab distance (offset max/min height) as possible, as these can be done more speedily.

On correcting problems with normal maps in Photoshop...

Once you have found what you can and can't fix you can set the colour of your missed parts to be the base normal map colour (127,127,255) so it doesn't show up as an annoying un antialiased blob of colour and then you can just massage it out by hand in photoshop if there is no 2d workaround.

On errors that occur when rendering normal maps in Max...

The target slot message is unimportant, it exists only because max expects that you are doing a normal map process in order to create a max material and so is confused that you are not assigning the outputted images to form a max material.

System exception during render means you screwed something small and annoying up in your hi poly objects that shouldn't really be an issue if not for the fact that max is REALLY REALLY picky!!!

You're going to need to trawl through all your hi poly assets to narrow down where the error lies. Below are some of the common errors that cause this:

An empty layer/named selection or object;

A 3d part that has undergone too many operations and now needs its Xform reset;

An Edit poly model that has some weird voodoo thing happening that can only be cured by converting to edit mesh and then back to edit poly;

Or more voodoo that can only be cured by exporting the selected model section out as an obj and then reimporting it back into the scene.

The best way to track down these things is to incrementally check each part and add it to the process list of your low poly and try processing again. Sometimes it will crash the moment you add it to the list, so save often but this is the easiest way to track them down.

Sometimes it is simply because you have too many polys or lights or materials in the scene and need to split the scene into multiple scenes for separate process and reassembling later on.

Tips on using other programs to generate normal maps:

Using Maya's Surface Sampler, the green channel in normal maps is inverted. Inverting it again in Photoshop will fix this problem.. Its also possible to fix this issue by modifying the Unpack Min/Max for that channel in the editor.

Instead using Nvidias Normalmaptool you could use Crazybump http://www.crazybump.com/ which generates way better normalmaps and also diffuse, specular and displacement maps from simple photosource.

Downloadable Resources

nVidia Normal Mapping Plugin

Epic artists also use Crazybump for creating normal maps from heightmaps as well as combining multiple normal maps together. http://www.crazybump.com/

16 bit filter for the nVidia Plugin

A 16 bit replacement filter for the normal map plugin can be downloaded below; it is paticularly handy for grayscale images exported from ZBrush. This new filter has the same filename as the one that comes with the plugin; just go ahead and replace it.