Are Four 74HC595 Sift-registers in a row too many?

I saw a post on the Hitech C forum, there was an extra I2C bit, someone hooked it up to a logic analyzer. We figured out it was due to wrong tristating sequence before initializing the serial port.

Setting the tristate right before writing to the serial port register, not after writing, solved the problem!

I have one project where instead of a LED 7seg display, I tried to install a 5x5 LED matrix. Driven through 2x 74hc595. However it is using 5 sink lines not 4 so the PCB is patched.

It was a nightmare (in assembler) just to get to a point displaying a pattern on the matrix!
I use C now (it's a year ago when I wrote it), but I know the experience, trying around for hours to archieve something very simple.

74595.jpg