I don't know for sure, but I have to assume that mraa_spi_write_buf would only toggle the CS line once. There has to be a function that sends multiple bytes between toggling the CS line.
Given your requirement, I think your code should look something like:
data[0] = 0;
data[1] = address;
mraa_spi_write_buf(spi, data, 2);
data[0] = 0;
data[1] = reg;
mraa_spi_write_buf(spi, data, 2);