Here it is.
WAY easier then I made it out to be.
Taking the vertex normal from worldspace to local allows you to fix it in place. Then you can just mask the channel you need.
No need to isolate R, since it’s “waht’s left” after you pass the other 2.
The Abs node is necessary since VertexNormal will return 1 and -1 (left and right of pivot). Ceil is necesary, as the vertex nomral is fractal if you scale the item.
This seems to be 100% rotation independent.
Performance is what it is. You can optimize by moving the UV calculations to 3 different UVs and using the 3 different UVs in your material. Not sure you’d gain anything from it. multiplying is as low cost as it gets.