.NET is not as cross-platform as Java, Mono .NET APIs compared to Microsoft .NET APIs are nowhere near OpenJDK APIs compared to Oracle Java APIs in terms of completeness.
True, albeit it is sufficiently complete. A lot of missing APIs are missing because they are too particular to the Windows Platform - other very powerful (and more scarcely used) portions of the framework Microsoft isn’t releasing the proper licenses for Mono to re-implement but you can always use a third-party pure .Net library for that. Microsoft has made a legally binding promise to allow Mono to reimplement a lot of the .Net framework on various other platforms.
That said, .Net is on platforms Java isn’t, for example it will have lots of access on the Xbox One, it was on the 360, obviously Mono has developed enough for it to be run on most linux builds (and if it isn’t seamless [and usually it is] the developers can take small efforts to get it running on those platforms by tailoring their code to minor limitations imposed by Mono)
Microsoft will be pushing .Net out to its windows phone and RTM tablets as well. Mono has pushed it out to Linux which will get you on most other platforms.