Arduino Leonardo Mouse Emulation: not recognised by some (not all) apps?

I am puzzled. I have been working on a couple of custom USB game controllers based on Leonardos, one of which is devoted to simple WASD (keyboard and mouse only) games and the other of which is more complex (adds 3 axes of joystick emulation). Both projects have been quite successful and I have had no difficulty with the Leonardo's HID emulation or the associated libraries. "It just works."

I had tested this controller a few months ago with a little Unity standalone app (basically a student project in world-building) and it worked fine. Took the summer off, doing other stuff, but just recently I've built a new, more compactly packaged version of the simple WASD controller running the same duino code.

Imagine my surprise when I tried it out today with the same old Unity app (which has not been rebuilt since the last test a few months ago), and the mouse move inputs were completely disregarded! I could see that OSX believed in the Leonardo mouse emulation -- I could use the controller to navigate on my desktop, select windows and text, activate menus, click buttons etc. But within my Unity game, only the mouse buttons were honoured and all mouse movements were ignored. Meanwhile the 3 other USB pointing devices attached to the computer all worked (2 mice and a mini Ergo touchpad).

Of course I started testing the Leo with every game I happened to have lying around. The results were interesting:

American Truck Sim: yes, works fine
Beginner's Guide: yes
Dear Esther: yes
Dr Langeskov &c: no
Everything: no
Obduction: yes
OffPeak: no
Sunless Sea: yes

I'm guessing that this may have something to do with different game engines? Do some game engines refuse to recognise HIDs beyond a certain fixed count (i.e. if you have a lot of joysticks and mice and stuff, at some point the engine ignores all HID address higher than N)? But if so, why would Unity have honoured the mouse buttons but not the pointer motion?

Has anyone else ever experienced trouble getting a game or other app to recognise an Arduino Leonardo acting as a mouse, when the desktop recognises it normally? Any idea what might cause this failure, and is there any workaround? It it very disappointing to have completed my customised USB controller only to find that it may or may not work on any given game, for mysterious reasons.