I've looked at that code, and then looked at it again, and then yet another time, and I can't even think of a reason why that shift is there in the first place, it doesn't even seem to do anything besides taking your precious HoA apart.
Remember rule one...
Comment on Re: How Not to Alter Hash in HoA while Counting Array