Changing Ardupilot IMU of linux board

HI …
Iam traying to change ardupilot code to work with any IMU that support SPI protocol
but i have problem when make change in AP_InertialSensor exact on AP_InertialSensor_MPU9150
becuase that is mpu is 8 bit register address and i have mpu has 16 bit register address need it to work
and i have detect that spi drive is shared between more than sensor .
can i solve this problem? or
can i create new library for my new MPU to support it and how i can use spi driver to write 16 bit register address and recive 16 bit register data like the funcation on arduino spi.transfer16()
and how i can set spi setting like arduino spi mod spi clock spi begin dataOrder and speedMaximum that are
work for my new MPU? and thank you to all who will help.