I would suggest to move those changes and some of the changes below into a separate patch. They can easily be reviewed separately and using PtrToUint() instead of pointer types wasn't even a good idea on 32-bit. ;)
The original idea was that we'd have a separate loop for vtables with the COR_VTABLE_64BIT flag, and on 32-bit we'd support both flags. Making the flag checked arch-specific means we can use a pointer type, but it also means we can't handle a 64-bit vtable fixup in 32-bit images (which native may not even allow, I haven't checked).
We really should've had some sort of "unsupported flags" check in there, but I didn't want to bring up pre-existing issues.
The reason we didn't allocate a proper stack frame on x86 is that I didn't realize it was an option.