How can I make this homebrew Elder Aboleth the CR rating I want it to be?


A party I’m running for are going up against an aboleth as a late-game "boss" (but not the "final boss"). They are currently Tier 4, level 17 to be precise, so a basic CR 10 aboleth is not going to stand up against them and will not be a climax I’m hoping for in this part of the adventure.

So, I’ve decided to boost the stats of the aboleth, increasing it to CR 22, which should serve as a better challenge for the party (they will have help, and have magic items aplenty, so I’m aware that this CR is above what the DMG, p. 82, thinks will be a deadly encounter for a party of four level 17 PCs).

I’ve used the guidance in the DMG, pp. 274-279, to try to modify the Aboleth’s stats so that it would be considered a CR 22 creature. I wanted it to still "feel" like an aboleth, so the Actions and abilities it has are unchanged, only the numbers (AC, HP, attack bonus, damage, DCs, etc) are different. Also, I intend for it to have access to the lair actions (the DCs of which will also be increased from DC 14 to DC 17) listed in the Monster Manual, if that makes any difference.

I’ve tried to keep the new numbers relative to the old numbers. For example, the RAW aboleth’s AC is 17, which matches what the table in the DMG suggests, so I went with the table’s suggestion of 19 for a CR 22 creature; however, the RAW aboleth has rather low HP for a CR 10 creature, so I gave it less than what the table suggested. Another example is the save DCs; 14 is rather low for a CR 10 creature, so I simply increased them by the proficiency bonus difference (CR 10 creatures have +4, and CR 22 creatures should have +7, so I increased the DCs by 3), which again resulted in a below average save DC for my new stats.

For the ability scores, I left DEX alone, but increased the mental stats (INT/WIS/CHA) by 4. Why 4? Because, as a comparison, the Red Dragon has different versions of different CRs (Young is CR 10, Ancient is CR 24, which is close enough to what I’m doing) and noticed that all the mental scores were 4 points higher, so I copied that pattern. With STR, I increased that to suit the attack bonuses according to the DMG tables, and CON was increased similarly for HP in accordance to the DMG tables (or rather, about roughly ⅔ of the recommended lower bound, going by the RAW aboleth’s HP).

Below is my attempt to make a CR 22 aboleth, which I’ve called the "Elder Aboleth" (so that it being stronger makes some kind of sense), and have made it Huge rather than Large to further justify its additional strength:

Elder Aboleth

Huge aberration, lawful evil


Armor Class 19 (Natural Armor)
Hit Points 276 (24d12 + 120)
Speed 10 ft., swim 40 ft.


  STR        DEX        CON        INT        WIS        CHA
22 (+6)      9 (-1)      20 (+5)    22 (+6)    19 (+4)    22 (+6)


Saving Throws CON +12, INT +13, WIS +11
Skills History +20, Perception +20
Senses Darkvision 120 ft., Passive Perception 30
Languages Deep Speech, Telepathy 120 ft.
Challenge 22 (41,000 XP)


Amphibious. The aboleth can breathe air and water.

Mucous Cloud. While underwater, the aboleth is surrounded by transformative mucus. A creature that touches the aboleth or that hits it with a melee attack while within 5 feet of it must make a DC 17 Constitution saving throw. On a failure, the creature is diseased for 1d4 hours. The diseased creature can breathe only underwater.

Probing Telepathy. If a creature communicates telepathically with the aboleth, the aboleth learns the creature’s greatest desires if the aboleth can see the creature.  
 

Actions


Multiattack. The aboleth makes three tentacle attacks.

Tentacle. Melee Weapon Attack: +13 to hit, reach 10 ft., one target. Hit: 25 (3d10 + 6) bludgeoning damage. If the target is a creature, it must succeed on a DC 17 Constitution saving throw or become diseased. The disease has no effect for 1 minute and can be removed by any magic that cures disease. After 1 minute, the diseased creature’s skin becomes translucent and slimy, the creature can’t regain hit points unless it is underwater, and the disease can be removed only by heal or another disease-curing spell of 6th level or higher. When the creature is outside a body of water, it takes 6 (1d12) acid damage every 10 minutes unless moisture is applied to the skin before 10 minutes have passed.

Tail. Melee Weapon Attack: +13 to hit, reach 10 ft. one target. Hit: 32 (4d10 + 6) bludgeoning damage.

Enslave (3/Day). The aboleth targets one creature it can see within 30 feet of it. The target must succeed on a DC 17 Wisdom saving throw or be magically charmed by the aboleth until the aboleth dies or until it is on a different plane of existence from the target. The charmed target is under the aboleth’s control and can’t take reactions, and the aboleth and the target can communicate telepathically with each other over any distance.

Whenever the charmed target takes damage, the target can repeat the saving throw. On a success, the effect ends. No more than once every 24 hours, the target can also repeat the saving throw when it is at least 1 mile away from the aboleth.  
 

Legendary Actions


The aboleth can take 3 legendary actions, choosing from the options below. Only one legendary action option can be used at a time and only at the end of another creature’s turn. The aboleth regains spent legendary actions at the start of its turn.

Detect. The aboleth makes a Wisdom (Perception) check.

Tail Swipe. The aboleth makes one tail attack.

Psychic Drain (Costs 2 Actions). One creature charmed by the aboleth takes 28 (8d6) psychic damage, and the aboleth regains hit points equal to the damage the creature takes.

At the end of all of this, I then compare what I’ve done, trying to keep it relative to the RAW aboleth, regarding how well (or badly) it adheres to the average for its CR, to the "Average Challenge Rating" of pp. 274-275. But what I’ve come up with feels like it’s lower than CR 22 due to the lower damage output, lower save DCs and lower HP.

What have I done wrong? What would I need to do to make this creature a CR 22 creature, but still keeping the same relative strengths and weaknesses that the RAW aboleth has compared to the DMG table so that it still "feels" like an aboleth?