how did you managed to have 3 textures with their bumps in the terrain shader editor?
In a script shader you can define textures as many as you want.
But you need to set the whole texture path for each. But you can't select this from the skinmesh dialog.
To support all lightmodes you need several .. 10 script (shaders), to support fog/directlight/pointlights1-4, 20 if you need envmap support aswell.
And the shadereditor just supports sunlight, and always compute fog even if you don't use it (wasting gpu power).
In the .fx files Fernando made a a change in 6.49 so 3 textures are sent to the shader, they are userTextureA/B/C, .fx files are chosen by the 3drad application automagic based on your choices in the skinmesh dialog/fog object/pointlight object.
To normalmap these we need additional slots for userTextureD/E/F, aka another $50 change orso I would guess.
EDIT:
On second thought, I think you could pass textures via script to .fx files too
It would go something like this
int nmR, nmG, nmB;
nmR = iShaderTextureCreate("\\path\\to\\texturefileR");
nmG = iShaderTextureCreate("\\path\\to\\texturefileG");
nmB = iShaderTextureCreate("\\path\\to\\texturefileB");
iShaderTextureSet(OBJ_0, "nmR", nmR);
iShaderTextureSet(OBJ_0, "nmG", nmG);
iShaderTextureSet(OBJ_0, "nmB", nmB);