This looks fine to me, except vecViewPort is a float4 and I would write texture = <textureName> instead of texture = (textureName). But I don't know if one of these things is even relevant because it works in your test level. Maybe your normalmap got corrupted? What happens if you replace mtlSkin1 with shockwave_bmap_bmap or use another bitmap file?