As for name mapping - of course if you use mappednames in your keyword tests they should be defined in the name mapping of the same project. If you add existing tests from another project, you should also add the existing name mapping with appropriate mapped objects, or if you already have name mapping in this project you can merge it with external one (right click name mapping project item in project explorer, select "merge" and then specify necessary name mapping file), in this way all mapped names of the external name mapping file will be added to your project.
As for default project structure. It should be defined as you described in Tools->Options->General->Project
You'd better not try to make your test project workable for both versions of application,
but create a separate project, and keep separate projects or suites for each version of your application.
Because there could be changes in tested application (or they will appear sooner or later) that make impossible to keep the same script workable for several versions.
And BTW it would be much more convenient to use version control systems to keep track of all versions of your test scripts.