I could see there being a label and an action attribute. For most games they will be the same. The entry form could automatically fill in action with the label when it is typed in. Context sensitive buttons might be interesting.
I like the Action attribute far better than my first go. Better name and connotation, separates user game actions from labels, gets a way to verify that a game had no labels into the DB, addresses the complaint of poor labels while avoiding the need to watch through 2 minutes of the game to find out what the button labeled "A" does in the game, and leaves the real label alone. Also, this would make a way, for example, for 2-3 button neogeo games to show that button 4 is not used in that game, even though it has a label.
As you said, context sensitive buttons might be interesting. Make it an optional multi-element? (Cons: harder to parse, more complicated, for only a small percentage of all the games, what about multibutton actions?; Pros: covers multi-action and content specific actions)
<Labels>
<Label Name="P1_BUTTON1" Value="Action">
<Action Name="Swing" />
<Action Name="Pitch" />
</Label>
<Label Name="P1_BUTTON2" Value="B" />
<Label Name="P1_BUTTON3" Value="C">
<Action Name="Unknown" />
</Label>
<Label Name="P1_BUTTON3" Value="D">
<Action Name="Unused" />
</Label>
</Labels>vs
... <Label Name="P1_BUTTON1" Value="Action" Action="Swing/Pitch" />...Probably overkill, but hey, tossing it out there.
I know the misc already might contain the info, but from a database point of view, comment fields are not the best way to store data that can be standardized. Hard to query, no way to sort, hard to parse, hard to selectively display, and in the 1943kai case, have to humanly apply button specific info to the correct buttons. By standardizing with the action attribute, the info is easier to use and is thus more helpful.