Right, got it sorted. Pretty much. I'm now within 95% of what the X1 used to perform like.
Here's what I checked:
- Front pulley, 27 teeth on M2 engine. On the X1 its 29!?
- Dropped needle in carb but realized that there was only one step left to drop it anyways.
- Tried different jet sizes, getting progressively smaller. Fitting smaller jets made the roll-on and half throttle performance better but shagged the top end.
- Also plaid some more with changing the position of the Hall sensor timing with no difference whatsoever
- Then realized that the X1 engine has got a engine temp sensor in the rear head, so the ECU is 'looking' for the info from the sensor. I checked the manual and it says that the ECU uses the engine temp sensor to advance the ignition timing. The M2 engine doesn't have the sensor. Could not remove the sensor from the X1 head though because I don't have the right tools.
Manual says that at 300C the engine temp sensor resistance is 0, which equals ground. So I connected the wire straight to earth and tried again. Bingo!

The bike is now performing pretty well, and almost as well as the X1 engine was. That's good enough for me. I can probably start raising the needle in the carb again to see if I can increase the performance a bit more now that the timing is finally sorted.
A bit of a weird one this!