So if for example the Player Button 1 is already assigned to CTRL, Joy1B1, Joy2B1, can i also assign Joy3B1 without reassign all 4 again?
You can do it semi-manually by using a text-editor that can replace text in multiple files, something like Notepad++, which is free. You have to put all .cfg files you want to change into one folder,
open the first one with Notepad++ and then replace the assignments for each button in all the files.
For example, this is the config for 10yard.zip. Player 1 button 1 is set to Joy1B1 and Joy2B1.
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
<system name="10yard">
<input>
<port tag=":IN1" type="P1_BUTTON1" mask="128" defvalue="128">
<newseq type="standard">
JOYCODE_1_BUTTON1 OR JOYCODE_2_BUTTON1 </newseq>
</port>
</input>
</system>
</mameconfig>
To add Joy3B1, you use 'replace' to replace
JOYCODE_2_BUTTON1 with
JOYCODE_2_BUTTON1 OR JOYCODE_3_Button1. If you use 'replace in files', you change the button 1 assignment in all files.
You have to do that for every joystick button, but it sure beats editing every file by hand.