Ah cool - that's an interesting way of doing it, I hadn't thought of sending each byte separately.
Out of interest how are you timing the I2C transactions? Speed may become important as I might want to send frames of video to a number of matrices with different addresses.
I have an ATmega 328 (so 2K SRAM) but I don't really want to use a whole kilobyte for buffers!
Nick