Created attachment 19028 [details]
How the number ends up in the play store
If you leave the version number unfilled/unset in the AndroidManifest.xml Xamarin Studio or the google api ends up what appears to be a 'garbage' number to it(see attached screenshot). After that you can't undo that by just boosting the number above the bogus versions as Xamarin Studio won't let you set a number higher than 64k(see attached screenshot)
I suspect a piece of code like this:
int versionNumber ;
if( strlen(versionNumberStr) > 0 )
versionNumber = atoi(versionNumberStr) ;
or some similar path
Created attachment 19029 [details]
attempting to set the version code higher the the bogus on part1
Created attachment 19030 [details]
attempting to set the version code higher the the bogus on part2
Created attachment 19045 [details]
When Version Code is removed
curiously those numbers come out to be 0x40001 and 0x20001. Do they get generated if the android:versionCode is absent?
Created attachment 19046 [details]
Result if you try to get the version code to 262146 or higher
So... it's catch22. I can't delete the beta version from the google play store and I can't set the number higher than 64k.
This is probably related to the following code
It used to be that the max versionCode was 65535, bit it seems google has now upped that
" Warning: The greatest value Google Play allows for versionCode is 2100000000."
from the docs at 
Note this cod path is used when emitting an apk per abi. See 
*** This bug has been marked as a duplicate of bug 51620 ***