The chip has data shifted in MSB first, starting with the data byte.
No. Look at Fig 5, the time goes from left to right - so D0 is the last thing out.
The MSB goes out first, so with 2 bytes you will have:
0 0 0 0 0 0 A1 A0 D7 6 5 4 3 2 1 0
^ ^
| this is the first bit out | and this last
Chip supports 10 MHz speed, so you can use SPI transfer - default speed is 4 MHz:
digitalWrite (ldPin, LOW);
SPI.transfer (highByte (dataArray[0]);
SPI.transfer (lowByte (dataArray[0]);
digitalWrite (ldPin, HIGH);
digitalWrite (ldPin, LOW);
SPI.transfer (highByte (dataArray[1]);
SPI.transfer (lowByte (dataArray[1]);
digitalWrite (ldPin, HIGH);
digitalWrite (ldPin, LOW);
SPI.transfer (highByte (dataArray[2]);
SPI.transfer (lowByte (dataArray[2]);
digitalWrite (ldPin, HIGH);
with
int dataArray[3]; // holds the 3 output values