I thought you were using bmap_to_normals for creating the normalmap.
bmap_to_normals(BMAP* bmap,var factor)
if (pix[0] > 255)
pix[0] = 255;
I see that you are truncating the color components of nornalmap, wouldn't it make the normal calc of those pixels incorrect. Though I doubt that there would be any need for alteration if done correctly.