Attaching interrupt kills main loop

Index 2 is not valid. You have two elements, 0 and 1.

index 2 still comes up with the right numbers, but for good measure I tried a couple of things out.

First

int data[3];
  mouse.report(data);

...

  if (data[2] > 0 )

Works just as before after setting this up, as I expected.

So, just to check something

int data[2];
  mouse.report(data);

...

Serial.print(data[3]);

This did not throw an error at compile. It wouldn't show the right number, but it didn't crash. So I'm guessing this is just a difference between explicit and implicit declarations? I've left it with the int data[3]; though just to make sure. Regardless this hasn't solved the issue, and I had ditched turning the interrupts off and on. Thanks for the help.