Hi Todd, nice typing, but did you mean "important columns" rather than "other stuff"... I'm glad I checked because I may not have noticed the similarity to my recent proof finding the Algebraic Normal Form for certain radix cellular automata:
TermsUpTo[vars_ : {__Slot}, nMax_
] := TermsUpTo[vars /. Slot -> S, nMax] /. S -> Slot
TermsUpTo[vars_ /; ! MemberQ[Head /@ vars, Slot], nMax_Integer
] := TermsUpTo[vars, Table[nMax, {Length[vars]}]]
TermsUpTo[vars_ /; ! MemberQ[Head /@ vars, Slot], nMax_ : {__Integer}
] := Reverse[SortBy[Union[Flatten[
Outer[Times @@ DeleteCases[Times[#1, #2], 0] &,
Flatten[Outer[MapThread[#1^#2 &,
{vars, {##}}] &,
Sequence @@ Range /@ nMax,
1], Length[nMax] - 1],
Tuples[{0, 1}, Length[nMax]], 1]]],
Flatten[{#} /. {Power[x_, y_] :> Table[x, {y}],
Times -> List}] &]]
CAtoANF[color_, radius_] := Function[Evaluate[
Mod[TermsUpTo[Slot /@ Range[2 radius + 1], color - 1], color]]
] @@@ Tuples[Reverse[Range[0, color - 1]], 2 radius + 1]
With[{CAtoANFPrimes = CAtoANF[Prime[#], 1] & /@ Range[4]},
Column[MapIndexed[
Row[Show[#, ImageSize -> 400] & /@ {ArrayPlot[#1],
ArrayPlot[Inverse[#1, Modulus -> Prime[#2[[1]]] ]]},
Spacer[5]] &, CAtoANFPrimes]]]

Effectively a constructive proof of existence of ANF for first few primes, which is expected to extend to all primes. If you try this with composites mixed in, matrix inversion breaks, and it starts to look like Galois Field Theory will be necessary.
However, we can go immediately to four colors, because I fixed the proof in that one particular case:
CAtoANF4 = Function[Evaluate[
Mod[TermsUpTo[Slot /@ Range[6], 1], 4]]
] @@@ Tuples[{1, 0}, 6];
Row[Show[#, ImageSize -> 400] & /@ {ArrayPlot[CAtoANF4],
ArrayPlot[Inverse[CAtoANF4, Modulus -> 4]]}, Spacer[5]]

Notice similarity to your BitReverseOrder, but it's not exactly the same.
Anyways, I tried to go to radix six, but couldn't figure it out. Any ideas?
Do you know a reference for a proof that even says ANF exists for any radix?
I might lecture this summer how useful ANF is for complexity ordering search spaces... When you can cut something down from say
$3^{27}$ to
$3^{10}$ it becomes a lot easier to be thorough and actually get some results. Even if you stay at
$3^{27}$ or higher, extra info about functional complexity can help building ocean maps for deep dive searches.