Is it not typical or even possible with Arduino to have an object oriented firmware ?
I would lean towards not "not typical." Generally, microcontroller control things which tends to be procedural. The Arduino language is baed on C++. To me, it could make sense to have an object as a data structure. However, I doubt I would ever implement a MVC model.
I don't know what influence the frequency of 30MHz has over the circuit design
The shift register you are using might be capable of receiving data up to 25MHz (not sure where 30 is coming from), but the Arduino is certainly not capable of transmitting data that fast.
SN74HC165N's, but I believe 74F151
The 165 is a shift register. The 151 is a multiplexer. The shift register will give you the status of all of its Inputs during a single read-out operation. With a multiplexer you tell it which specific input you are interested in. I imagine the code and hardware implement is roughly the same.