Hey @AnderssonKev
No. MonoGame does not do runtime abstractions (i.e. if platform == Android do stuff). Instead we have different projects for each platform and users reference the project for the platform their targeting. That means you need one project for each platform.
That said, you can put most of the game code in a shared project and include that in the platform specific projects. They then only need to handle platform specific stuff, like touch vs mouse input, screen resolution, launching the game...
MonoGame doesn't really offer anything for this out of the box, but it's pretty easy to implement. Just make sure you handle it at the start of the project because it's a pain to change later.
I don't think there is anything like that. For cross platform desktop projects you can use SDL directly to get a gamepad name (MG uses SDL in the backend for input and windowing for the cross platform desktop aka DesktopGL platform). I think that's the most relevant one. Basically for each platform you'd have to use reflection to get the platform-specific gamepad object from MonoGame and then use the platform-specific API to get the name from it.