Here's what I'm currently using (I'm 74). Still missing a few things, and I'll probably enhance it more once I'm 75, but it does the job for exp parties. It uses a lot of variables in ways that aren't really "normal", so if you want some explanation about how certain parts work, just let me know.
Code:
<?xml version="1.0" ?>
<spellcast>
<config>
</config>
<sets>
<group default="yes" name="default">
<set name="idle" baseset="maxmp">
<main>$EarthStaff</main>
<head>Remove</head>
<body>Royal Cloak</body>
</set>
<set name="resting">
<main>$DarkStaff</main>
<sub>Staff Strap</sub>
<head>Wivre Hairpin</head>
<neck>Beak Necklace +1</neck>
<lear>Insomnia Earring</lear>
<rear>Antivenom Earring</rear>
<head>Wivre Hairpin</head>
<body>Errant Hpl.</body>
<hands>Wood Gauntlets</hands>
<lring>Ether Ring</lring>
<rring>Serket Ring</rring>
<back>Lamia Mantle +1</back>
<waist>Qiqirn Sash +1</waist>
<legs>Baron's Slops</legs>
<feet>Zenith Pumps</feet>
</set>
<set name="maxmp" baseset="resting">
<body>Blue Cotehardie</body>
<waist>Forest Rope</waist>
<legs>Vendor's Slops</legs>
</set>
<set name="accuracy"> <!-- should only include pieces that are the most accurate for BOTH types of enfeebles -->
<main>$%SpellElementStaff</main>
<sub>%SpellElement Grip</sub>
<ammo>Sturm's Report</ammo>
<head>Wise Cap</head>
<neck>Enfeebling Torque</neck>
<body>Warlock's Tabard</body>
<lring>Balrahn's Ring</lring>
<back>Prism Cape</back>
<waist>Penitent's Rope</waist>
<legs>Mahatma Slops</legs>
</set>
<set name="mnd-potency" baseset="accuracy">
<main>Mythic Wand +1</main>
<sub>Spellcaster's Ecu</sub>
<head>Errant Hat</head>
<neck>Faith Torque</neck>
<lear>Geist Earring</lear>
<rear>Geist Earring</rear>
<body>Errant Hpl.</body>
<hands>Dvt. Mitts +1</hands>
<lring>Sapphire Ring</lring>
<rring>Sapphire Ring</rring>
<feet>Mahatma Pigaches</feet>
</set>
<set name="mnd-hybrid" baseset="mnd-potency">
<main>$%SpellElementStaff</main>
<sub>$SpellElement Grip</sub>
</set>
<set name="mnd-accuracy" baseset="accuracy">
<lear>Geist Earring</lear>
<rear>Geist Earring</rear>
<hands>Dvt. Mitts +1</hands>
<rring>Sapphire Ring</rring>
<feet>Mahatma Pigaches</feet>
</set>
<set name="int" baseset="accuracy">
<head>Warlock's Chapeau</head>
<lear>Morion Earring</lear>
<rear>Morion Earring</rear>
<hands>Mahatma Cuffs</hands>
<rring>Diamond Ring</rring>
<feet>Zenith Pumps</feet>
</set>
<set name="fastcast">
<head>Warlock's Chapeau</head>
<body>Warlock's Tabard</body>
</set>
<set name="buff">
<main>Fourth Mace</main>
<sub>Sentinel Shield</sub>
<head>Warlock's Chapeau</head>
<body>Raven Jupon</body>
<hands>Dusk Gloves</hands>
<waist>Swift Belt</waist>
<legs>Crow Hose</legs>
<feet>Dusk Ledelsens</feet>
</set>
<set name="cure" baseset="buff">
<main>$LightStaff</main>
<sub>Staff Strap</sub>
<head>Raven Beret</head>
<hands>Raven Bracers</hands>
<waist>Penitent's Rope</waist>
<feet>Crow Gaiters</feet>
</set>
<set name="nuking" baseset="int">
<neck>Elemental Torque</neck>
<body>Errant Hpl.</body>
</set>
</group>
</sets>
<variables>
<var name="IceStaff">Aquilo's Staff</var>
<var name="WindStaff">Auster's Staff</var>
<var name="EarthStaff">Terra's Staff</var>
<var name="ThunderStaff">Thunder Staff</var>
<var name="WaterStaff">Water Staff</var>
<var name="FireStaff">Fire Staff</var>
<var name="DarkStaff">Pluto's Staff</var>
<var name="LightStaff">Apollo's Staff</var>
<var name="SlowParaSet">mnd-potency</var>
<var name="SwapWhen">precast</var> <!-- used to decide when to swap into the "finish casting" set - should be precast for short spells, and midcast for longer spells that use fast cast set to start in -->
<var name="target-precast">none</var>
<var name="target-midcast">none</var>
<var name="target-aftercast">none</var>
<var name="mplocking">1</var>
<var name="idlemp">876</var>
<var name="maxmpmp">926</var>
<var name="mnd-potencymp">549</var>
<var name="mnd-hybridmp">554</var>
<var name="mnd-accuracymp">581</var>
<var name="intmp">627</var>
<var name="nukingmp">613</var>
<var name="fastcastmp">882</var>
<var name="buffmp">688</var>
<var name="curemp">658</var>
<var name="mp-to-check">none</var>
<var name="foodmp">0</var>
</variables>
<rules>
<action type="var" cmd="set target-precast none" />
<action type="var" cmd="set target-midcast none" />
<action type="var" cmd="set target-aftercast none" />
<if spell="autoset">
<equip when="resting" set="resting" />
<equip when="idle" set="idle" />
<action type="return" />
</if>
<if casttimegt="3.9">
<action type="precastdelay" delay="0.3" />
<action type="midcastdelay" delay="1" />
<action type="var" cmd="set SwapWhen midcast" />
<action type="var" cmd="set target-precast fastcast" />
</if>
<else>
<action type="var" cmd="set SwapWhen precast" />
</else>
<action type="var" cmd="set target-aftercast idle" />
<if skill="EnfeeblingMagic">
<if type="WhiteMagic">
<if spell="Slow*|Paralyze*">
<action type="var" cmd="set target-$SwapWhen $SlowParaSet" />
</if>
<else>
<action type="var" cmd="set target-$SwapWhen mnd-accuracy" />
</else>
</if>
<elseif type="BlackMagic">
<action type="var" cmd="set target-$SwapWhen int" />
</elseif>
</if>
<elseif skill="ElementalMagic">
<action type="var" cmd="set target-$SwapWhen nuking" />
</elseif>
<elseif skill="HealingMagic">
<action type="var" cmd="set target-$SwapWhen cure" />
</elseif>
<elseif skill="EnhancingMagic">
<if spell="Stoneskin">
<action type="var" cmd="set target-$SwapWhen mnd-potency" />
<action type="midcastdelay" delay="3" />
<action type="command" when="midcast">cancel 37</action>
</if>
<else>
<action type="var" cmd="set target-$SwapWhen buff" />
</else>
</elseif>
<elseif spell="Convert">
<action type="castdelay" delay="1" />
<action type="var" cmd="set target-precast maxmp" />
</elseif>
<elseif spell="Sekkanoki"> <!-- cycle potency/accuracy gear sets for Paralyze and Slow -->
<action type="cancelspell" />
<if advanced='"$SlowParaSet" = "mnd-potency"'>
<action type="var" cmd="set SlowParaSet mnd-hybrid" />
<action type="addtochat">Hybrid Gear</action>
</if>
<elseif advanced='"$SlowParaSet" = "mnd-hybrid"'>
<action type="var" cmd="set SlowParaSet mnd-accuracy" />
<action type="addtochat">Accuracy Gear</action>
</elseif>
<else>
<action type="var" cmd="set SlowParaSet mnd-potency" />
<action type="addtochat">Potency Gear</action>
</else>
</elseif>
<if advanced='$mplocking == 1'>
<if advanced='"$target-precast" != "none"'>
<action type="var" cmd="set mp-to-check $target-precastmp" />
<if advanced='%MP > ($$mp-to-check + $foodmp)'>
<action type="ChangeLock" when="precast" slot="range|ammo|head|neck|lear|rear|body|hands|lring|rring|back|waist|legs|feet" lock="yes" />
</if>
<equip when="precast" set="$target-precast" />
</if>
<if advanced='"$target-midcast" != "none"'>
<action type="var" cmd="set mp-to-check $target-midcastmp" />
<if advanced='%MP > ($$mp-to-check + $foodmp)'>
<action type="ChangeLock" when="midcast" slot="range|ammo|head|neck|lear|rear|body|hands|lring|rring|back|waist|legs|feet" lock="yes" />
</if>
<equip when="midcast" set="$target-midcast" />
</if>
</if>
<else>
<if advanced='"$target-precast" != "none"'>
<equip when="precast" set="$target-precast" />
</if>
<if advanced='"$target-midcast" != "none"'>
<equip when="midcast" set="$target-midcast" />
</if>
</else>
<if notspell="Convert|Divine Seal">
<equip when="aftercast" set="$target-aftercast" />
</if>
</rules>
</spellcast>