Thanks for confirming what I'd just sussed out by trial and error.
Data reads are [r1, g1] [b1, r2] [g2, b2] so 3 reads for 2 pixels, each colour value is left justified (e.g. red is written as 5 bits, read back as the top 5 of the 8 bits
// write in 565
rrrrrggggggbbbbb < write first word
rrrrrggggggbbbbb < write second word
// read back in 888
rrrrr000gggggg00 < read first 2 colours of 1st pixel
bbbbb000rrrrr000 < read last colour of 1st pixel, 1st colour of 2nd pixel
gggggg00bbbbb000 < read remaining 2 colours of 2nd pixel
Very irritating when you can't edit a message for 5 minutes due to the 'number of posts' limit!!