As for unlockable bosses chars etc, the easiest way to go about it is just lock em behind points total if you wanna go into it a bit more you can add a difficulty modifier easy 1x normal 2x etc.
this is how unlocking stuff is designed currently (only partially implemented but I will handle it soon). Quote from select.def:
;-------------------------------------------------------------------------------
[UnlockContent]
;IKEMEN feature: Unlock in-game content by fulfilling game progress conditions.
;Characters are locked via [Characters] 'hidden' parameter flag. Stages and
;modes are automatically hidden when any condition for unlocking them exists.
;---------------------
; Use the format:
; type:name = (condition_1), (condition_2), (...)
;
; type:name construct sets what content should be unlocked:
; char: Character filename (or full path to DEF file)
; stage: Path to stage DEF file
; mode: Mode reference:
; - arcade: Arcade Mode
; - versus: Versus Mode
; - teamcoop: Team Co-op Mode
; - survival: Survival Mode
; - survivalcoop: Survival Co-op Mode
; - training: Training Mode
; - netplayversus: Netplay Versus Mode
; - netplayteamcoop: Netplay Team Co-op Mode
; - netplaysurvivalcoop: Netplay Survival Co-op Mode
; - freebattle: Free Battle Mode
; - 100kumite: VS 100 Kumite Mode
; - bossrush: Boss Rush Mode
; When it comes to individual bonuses (generated via bonus=1 char param)
; name of the mode is the same as 'name' set in [Info] section of char
; DEF file. Story Mode arcs use the 'modename' from [StoryMode] section.
;
; Condition consists of declarations: stat, op, value, mode, char, tmode
; If there is only 1 condition brackets can be omitted. "stat", "op", "value"
; parameters are required. Save file tracks stats for each mode, character and
; team mode individually allowing you to be specific when declaring stat
; conditions via optional "mode", "char", "tmode" parameters.
;
; stat: Game stat that should be checked.
; Stats tracked globally:
; - gametime: total amount of time played
; Stats tracked after each match:
; - matches: played matches count
; - wins: won matches count
; - loose: lost matches count
; - draws: draw matches count
; - rankd: total rank D count
; - rankc: total rank C count
; - rankb: total rank B count
; - ranka: total rank A count
; - ranks: total rank S count
; - rankss: total rank SS count
; Stats tracked after mode is cleared:
; - cleared: mode cleared count
; - consecutive: max consecutive won matches count
; - perfects: max perfect matches count
; - continues: min continuous count
; - score: max total score
; - cleartime: min clear time (in seconds)
; - difficulty: max AI level used to clear the mode
; op: The equality and relational operators between stat and value:
; ==, !=, >, >=, <, <=
; value: Condition stat value
; mode: Game mode that stat check should be limited to. Use names from the
; above mentioned 'modename' list. If not set all modes will be taken
; into account (the value will be sum of counts, min or max)
; char: Character filename (or full path to DEF file) Stat check will be
; limited to this character. If not set stat check takes into account
; all characters (the value will be sum of counts, min or max)
; tmode: Team mode that stat check should be optionally limited to. Options:
; - 0: Single
; - 1: Simul
; - 2: Turns
; - 3: Tag
;
;Examples:
; Unlock kfm if total amount of time played is greater then 1 hour:
; char:kfm = gametime, >, 3600
;
; Unlock SuaveDude if:
; - arcade mode (Single) has been cleared at least 1 time with Kung Fu Man
; - total time played is greater then 1 hour
; char:SuaveDude = (cleared, >=, 1, arcade, kfm, 0), (gametime, >, 3600)
;
; Unlock stage if VS 100 Kumite Mode has been cleared in less than 1 hour
; stage:stages/mybg.def = cleartime, <, 3600, 100kumite
;
; Unlock "story_kfm2" story mode arc if "story_kfm1" arc has been cleared
; mode:story_kfm2 = cleared, !=, 0, story_kfm1
;
;Insert your conditions for content unlocking below.
The save file stuff that is checked here is related to save implementation presented in this post:
http://mugenguild.com/forum/msg.2406911