In general, you should give all elements names that describe the purpose of the given EDT, class and so on. This apply to maps as well. So if you want to create a map for a specific purpose, the name should refelect the name. This isn't met if you just throw the fields to SalesPurchLine map.
Also, the name SalesPurchLine says the purpose is to share functionality common to sales order lines and purchase order lines. But your requirement has nothing to do with purchase orders.
Another problem is that only 10% of table mapping to SalesPurchLine would support your fields. Any attempt to use them on the remaining 90% would fail. Not mapping some fields on all tables is possible, but if almost no mapped table uses them, it's an indidication that the map isn't used correctly.
Regarding your questions:
2. As already discused, maps can't be extended. You can extend the classes that replace some of the maps. Is there something in particular what you want to learn about class extensions?
3. Already covered above.