the only problem I am currently left with is that when a gradient is mapped to the world Y normal direction it blends with other world normal directions depending on the angle of the geometry.
Maybe there would be some way to restrain the normal angle in Y?