I2C is getting the best of me...

SurferTim:
I don't see an endTransmission function call anywhere.

    Wire.beginTransmission(I2C_address);

Wire.write(register_address);
// add this
    Wire.endTransmission();



edit: I see it now. You have it at the end of the next line. I guess you need to check the return value.
https://www.arduino.cc/en/Reference/WireEndTransmission

It's there, just in the most stupid spot possible.

I2C_write needs to have beginTransmission, not begin. You call begin in setup.