An idea I had recently for a crosshair function, although I am not nearly as good as you at coding these yet:
1.) Find distance between the center of the screen and the nearest pixel with color equal to the crosshair green.
2.) If there is no match, draw a basic + styled crosshair.
3.) If there is a match, draw to all points within a distance of the center equal to the distance from the center to the first green pixel only if those points are more than a distance... maybe 2 pixels less distance from the center.
While the normal crosshair is displayed on the screen, that should create a circle reticle that responds to recoil just as the NX one would...
If you want to try this you can take full credit for the idea, otherwise I will keep working on it.