You need to check in the descr_mercenaries.txt file for what mercenaries are assigned to what pool, the format is fairly obvious.

You wouldn't be able to include the reforms as a trigger of any kind.

For making a non-mercenary unit available as mercenary there's a lot of work to do, you'll need to edit the following files...

export_descr_unit.txt - the basic unit stats, copying the desired unit and making the changes to produce a mercenary version.

eg. Mercenary Hastati...

type merc hastati
dictionary merc_hastati ; Mercenary Hastati

category infantry
class light
voice_type Light_1
soldier roman_hastati, 40, 0, 1
attributes sea_faring, hide_forest, can_sap, mercenary_unit
formation 1, 2, 2, 3, 4, square
stat_health 1, 0
stat_pri 10, 2, pilum, 35, 2, thrown, blade, piercing, spear, 25 ,1
stat_pri_attr prec, thrown ap
stat_sec 6, 2, no, 0, 0, melee, simple, piercing, sword, 25 ,1
stat_sec_attr no
stat_pri_armour 3, 4, 4, metal
stat_sec_armour 0, 1, flesh
stat_heat 3
stat_ground 2, 0, 0, 0
stat_mental 5, normal, trained
stat_charge_dist 30
stat_fire_delay 0
stat_food 60, 300
stat_cost 1, 420, 150, 50, 70, 440
ownership slave


export_units.txt - the unit description.

{merc_hastati} Mercenary Hastati

{merc_hastati_descr}
Hardy\nSapping Ability\n\nYoung Roman men chosing to fight for money rather than their city. They are armed with two pila that are thrown at the enemy at close range before they close to fight hand-to-hand. They are equipped with a sword, a bronze helmet, a large shield and a breastplate. The pilum (plural, pila) is a cleverly designed spear with a soft iron shaft behind the point; it bends on impact so that it can’t be thrown back and if it’s stuck in someone or something it is a real hindrance to movement.

{merc_hastati_descr_short}
Young Roman men to fight for money rather than their city.


export_descr_unit_enum.txt - the link between the above 2 files.

merc_hastati
merc_hastati_descr
merc_hastati_descr_short


descr_model_battle.txt - this links the unit to the appropriate skeleton and graphic files, so you don't have a spearman looking and moving like an elephant.

If you've created your own textures so that mercenary Hastati are green like the other sellswords...

type roman_hastati
skeleton fs_javelinman, fs_swordsman
indiv_range 40
texture mercenary, data/models_unit/textures/unit_roman_hastati_merc.tga
texture romans_julii, data/models_unit/textures/unit_roman_hastati_julii.tga
texture romans_brutii, data/models_unit/textures/unit_roman_hastati_brutii.tga
texture romans_scipii, data/models_unit/textures/unit_roman_hastati_scipii.tga
texture romans_senate, data/models_unit/textures/unit_roman_hastati_senate.tga
texture slave, data/models_unit/textures/unit_roman_hastati_slave.tga
model_flexi_m data/models_unit/unit_roman_hastati_high.cas, 15
model_flexi_m data/models_unit/unit_roman_hastati_med.cas, 30
model_flexi_m data/models_unit/unit_roman_hastati_low.cas, 40
model_flexi data/models_unit/unit_roman_hastati_lowest.cas, max
model_sprite 60.0, data/sprites/merc_roman_hastati_sprite.spr
model_sprite slave, 60.0, data/sprites/slave_roman_hastati_sprite.spr
model_sprite romans_senate, 60.0, data/sprites/romans_senate_roman_hastati_sprite.spr
model_sprite romans_scipii, 60.0, data/sprites/romans_scipii_roman_hastati_sprite.spr
model_sprite romans_brutii, 60.0, data/sprites/romans_brutii_roman_hastati_sprite.spr
model_sprite romans_julii, 60.0, data/sprites/romans_julii_roman_hastati_sprite.spr
model_tri 400, 0.5f, 0.5f, 0.5f


Or if I'm just going to reuse existing textures/sprites, in this case the convenient Slave graphics...

type roman_hastati
skeleton fs_javelinman, fs_swordsman
indiv_range 40
texture mercenary, data/models_unit/textures/unit_roman_hastati_slave.tga
texture romans_julii, data/models_unit/textures/unit_roman_hastati_julii.tga
texture romans_brutii, data/models_unit/textures/unit_roman_hastati_brutii.tga
texture romans_scipii, data/models_unit/textures/unit_roman_hastati_scipii.tga
texture romans_senate, data/models_unit/textures/unit_roman_hastati_senate.tga
texture slave, data/models_unit/textures/unit_roman_hastati_slave.tga
model_flexi_m data/models_unit/unit_roman_hastati_high.cas, 15
model_flexi_m data/models_unit/unit_roman_hastati_med.cas, 30
model_flexi_m data/models_unit/unit_roman_hastati_low.cas, 40
model_flexi data/models_unit/unit_roman_hastati_lowest.cas, max
model_sprite 60.0, data/sprites/slave_roman_hastati_sprite.spr
model_sprite slave, 60.0, data/sprites/slave_roman_hastati_sprite.spr
model_sprite romans_senate, 60.0, data/sprites/romans_senate_roman_hastati_sprite.spr
model_sprite romans_scipii, 60.0, data/sprites/romans_scipii_roman_hastati_sprite.spr
model_sprite romans_brutii, 60.0, data/sprites/romans_brutii_roman_hastati_sprite.spr
model_sprite romans_julii, 60.0, data/sprites/romans_julii_roman_hastati_sprite.spr
model_tri 400, 0.5f, 0.5f, 0.5f


Lastly you'll need to copy/create unit cards so the correct graphic appears when you are selecting units in retrain queues and armies, plus the larger picture that appears when you view the unit details. The simplest & quickest method would be just to copy & rename the already existing files and place them in the appropriate folder for mercenaries.

To be able to copy then edit/rename the current graphic files you will need to extract them first from the PAK archives using the XPAK tool, check the other modding threads on where to get it & how to use it. Similarly there are also other threads on editting the graphics files, something that's not really my forte since I'm about as artistic as 2 year old with a box of crayons.

Hopefully I haven't made too many errors with that, if I have no doubt somebody will be able to pick them up for you.