16 bit SPI on Arduino Due
Found the problem on the SPI library.

When I do the command SPI.transfer, the data is stored on a byte type variable. And I'm passing a 16 bit data on it.

I've changed line 84 of SPI.h to

uint16_t transfer(byte _pin, uint16_t _data, SPITransferMode _mode = SPI_LAST);


so it will return and receive 16 bit data.

Also have to change the corresponding function on SPI.cpp (line 174)

uint16_t SPIClass::transfer(byte _pin, uint16_t _data, SPITransferMode _mode)


so they will match.

I've copied and renamed the SPI library that I've changed so it won't affect other codes.