Reverse RGB565 byte order for ILI9341 TFT Display

I tried both the Memory Access Control and the Interface Control Registers, to set the RGB <-> BGR order, but neither worked. These set the order of the 5bit 6bit 5bit encoding of RGB565 (16 bits total). The issue is not the order of RGB vs BGR, it is the order of the 2 bytes encoding RGB565, which split in the middle of the 6 bits encoding green in both RGB and BGR. These bytes need to be reversed for the ILI9341. Manually swapping the 2 bytes fixes the display, but doing this in python is very slow. This is the byte order required for the ILI9341 for 4-wire SPI:

I also tried the Endian bit in the Interface Control Register, but this is only valid for 8-bit and 9-bit parallel connections, not SPI.