In[]:=
allrevrules[k_]:=Thread[Tuples[Range[0,k-1],2]->#]&/@Permutations[Tuples[Range[0,k-1],2]]
In[]:=
ArrayPlot[ResourceFunction["BlockCellularAutomaton"][#,CenterArray[{1,1,1},40],20]]&/@allrevrules[2]
Out[]=

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

In[]:=
ArrayPlot[ResourceFunction["BlockCellularAutomaton"][#,CenterArray[{1,1,1},80],60]]&/@allrevrules[2]
Out[]=

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

In[]:=
ArrayPlot[ResourceFunction["BlockCellularAutomaton"][#,CenterArray[{1,1,1},400],600]]&@allrevrules[2][[-2]]
Out[]=
In[]:=
ArrayPlot[ResourceFunction["BlockCellularAutomaton"][#,CenterArray[{1,1,1},40],60]]&@allrevrules[2][[-2]]
Out[]=

number conserving rules

Size 3 blocks