これは偶然

これは本当に偶然で、そうである必然性はないはずなのですが、

12 + 29 * 4 = 128

になります。この関係があるために、上の回転量は1と-4とか-1と4とかになります。

この関係をうまく使って、最初から適当にずらしておきます。
下のほうのビット並び替えを使ってmt_bsを初期化しているとして、

mt_bs2[i][0] = mt_bs[i][0];
mt_bs2[i][1] = mt_bs[i][1] rotl 1;
mt_bs2[i][2] = mt_bs[i][2] rotl 2;
mt_bs2[i][3] = mt_bs[i][3] rotl 3;
mt_bs2[i][4] = mt_bs[i][4] rotl 4;

うずらしておきます。
各々は1ビットずつずれていて、4番目から0番目は4ビットずれているので、新しい回転量とぴったりあっています。

mt_bs[i][0]の更新にはmt_bs[i][3] rotl 4とmt_bs[i][4] rotl 4が必要だったので、
mt_bs2[i][0]の更新には mt_bs2[i][3] rotl 1とmt_bs2[i][4]を使います。
同様に
mt_bs2[i][1]にはmt_bs2[i][4] rotl 1とmt_bs2[i][0]を
mt_bs2[i][2]にはmt_bs2[i][0] rotl 1とmt_bs2[i][1]を
mt_bs2[i][3]にはmt_bs2[i][1] rotl 1とmt_bs2[i][2]を
mt_bs2[i][4]にはmt_bs2[i][2] rotl 1とmt_bs2[i][3]を
使って更新できます。なので、1ビット回転が5*32回になります。

だけど、面倒だからこれは実装せずに、29ビット回転を1ビット回転に変換まで実装しました。