That's some tricky coding there. I haven't got a clue.

If you find a way to change values using polygon normals, tell me, because I've got a feeling that information would be priceless.