How much other code have you got ? But you have more or less answered that in post #40.
Directly addressing the Max7219 is not very friendly and there other libraries like LEDcontrol which are much easier to use. Maybe changing to one of those libraries would be better.
Yes. you have to work consistently using bytes for that method: MAX7219senddata(byte reg, byte data)