diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 08a0e349c37862e6b5ce8ba601a6ad96fea04a25..71ae41f64610a8cd7ef03c1fe0f28b5d08a42213 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -630,9 +630,9 @@ function _M:getRankLifeAdjust(value)
 	if self.rank == 1 then return value * (level_adjust - 0.2)
 	elseif self.rank == 2 then return value * (level_adjust - 0.1)
 	elseif self.rank == 3 then return value * (level_adjust + 0.1)
-	elseif self.rank == 3.5 then return value * (level_adjust + 0.3)
-	elseif self.rank == 4 then return value * (level_adjust + 0.3)
-	elseif self.rank >= 5 then return value * (level_adjust + 0.5)
+	elseif self.rank == 3.5 then return value * (level_adjust + 1)
+	elseif self.rank == 4 then return value * (level_adjust + 2)
+	elseif self.rank >= 5 then return value * (level_adjust + 3)
 	else return 0
 	end
 end
diff --git a/game/modules/tome/data/talents/undeads/ghoul.lua b/game/modules/tome/data/talents/undeads/ghoul.lua
index fac3da315e1bd8bb1ac273ab7cce07dd4719cb8c..7842cf431014709d56a39ff0dfbba1925cdeab49 100644
--- a/game/modules/tome/data/talents/undeads/ghoul.lua
+++ b/game/modules/tome/data/talents/undeads/ghoul.lua
@@ -119,8 +119,9 @@ newTalent{
 	require = undeads_req4,
 	points = 5,
 	cooldown = 25,
-	tactical = { ATTACK = 1, DEFEND = 1 },
+	tactical = { ATTACK = 1, HEAL = 1 },
 	range=1,
+	requires_target = true,
 	action = function(self, t)
 		local duration = self:getTalentLevel(t) / 2 + 4
 		local radius = 3
diff --git a/game/modules/tome/data/talents/undeads/skeleton.lua b/game/modules/tome/data/talents/undeads/skeleton.lua
index 5690d2cccc2002e4e891cbded09af4796ac97588..4279e584a27f91689ecd4627e03ec919e012a206 100644
--- a/game/modules/tome/data/talents/undeads/skeleton.lua
+++ b/game/modules/tome/data/talents/undeads/skeleton.lua
@@ -48,6 +48,7 @@ newTalent{
 	cooldown = 15,
 	tactical = { ATTACK = 2 },
 	range = 1,
+	requires_target = true,
 	action = function(self, t)
 		local x, y = self.x, self.y
 		if game.level.map(x, y, game.level.map.TRAP) then
diff --git a/game/modules/tome/data/zones/deep-bellow/npcs.lua b/game/modules/tome/data/zones/deep-bellow/npcs.lua
index 6b67b7b4d9d75446ada1219366782902bab65c9c..0ac9149b65aa192298bc1b29b9fbf530c715bb9d 100644
--- a/game/modules/tome/data/zones/deep-bellow/npcs.lua
+++ b/game/modules/tome/data/zones/deep-bellow/npcs.lua
@@ -86,7 +86,7 @@ newEntity{ base="BASE_NPC_CORRUPTED_HORROR", define_as = "SLIMY_CRAWLER",
 It seems to come from the digestive system of the mouth.]],
 	level_range = {4, nil}, exp_worth = 0,
 	max_life = 80, life_rating = 10, fixed_rating = true,
-	movement_speed = -0.5,
+	movement_speed = 0.2,
 	size_category = 1,
 
 	combat = { dam=resolvers.mbonus(25, 15), damtype=DamageType.SLIME, dammod={str=1} },
diff --git a/game/modules/tome/data/zones/demon-plane/npcs.lua b/game/modules/tome/data/zones/demon-plane/npcs.lua
index c1db71b397976305c16234f6682d9b160c4f90cc..85c21eaab32bf6341ba2745c3fb78952aa3c1150 100644
--- a/game/modules/tome/data/zones/demon-plane/npcs.lua
+++ b/game/modules/tome/data/zones/demon-plane/npcs.lua
@@ -60,12 +60,12 @@ newEntity{ define_as = "DRAEBOR",
 
 	resolvers.talents{
 		[Talents.T_SUMMON]=1,
-		[Talents.T_FLAME]=5,
-		[Talents.T_BLOOD_GRASP]=5,
-		[Talents.T_WILDFIRE]=5,
+		[Talents.T_FLAME]={base=5, every=5, max=8},
+		[Talents.T_BLOOD_GRASP]={base=5, every=5, max=8},
+		[Talents.T_WILDFIRE]={base=5, every=5, max=8},
 		[Talents.T_PHASE_DOOR]=2,
-		[Talents.T_CURSE_OF_VULNERABILITY]=5,
-		[Talents.T_BONE_SHIELD]=3,
+		[Talents.T_CURSE_OF_VULNERABILITY]={base=5, every=5, max=8},
+		[Talents.T_BONE_SHIELD]={base=3, every=10, max=5},
 	},
 	resolvers.sustains_at_birth(),
 
diff --git a/game/modules/tome/data/zones/dreadfell/npcs.lua b/game/modules/tome/data/zones/dreadfell/npcs.lua
index c58552df69959813e586620477f3a6ed8f148bbe..12bb4a6c7c85898b11fe2a963982fd12e26007ec 100644
--- a/game/modules/tome/data/zones/dreadfell/npcs.lua
+++ b/game/modules/tome/data/zones/dreadfell/npcs.lua
@@ -71,20 +71,20 @@ newEntity{ define_as = "THE_MASTER",
 
 	resolvers.talents{
 		[Talents.T_SUMMON]=1,
-		[Talents.T_HEAVY_ARMOUR_TRAINING]=1,
-		[Talents.T_MANA_POOL]=1,
-			[Talents.T_CONGEAL_TIME]=2,
-			[Talents.T_MANATHRUST]=4,
-			[Talents.T_FREEZE]=4,
-			[Talents.T_PHASE_DOOR]=2,
-			[Talents.T_STRIKE]=3,
-		[Talents.T_STAMINA_POOL]=1,
-			[Talents.T_WEAPONS_MASTERY]=3,
-			[Talents.T_STUNNING_BLOW]=1,
-			[Talents.T_RUSH]=4,
-			[Talents.T_SPELL_SHIELD]=4,
-			[Talents.T_BLINDING_SPEED]=4,
-			[Talents.T_PERFECT_STRIKE]=3,
+		[Talents.T_HEAVY_ARMOUR_TRAINING]={base=1, every=5, max=5},
+
+		[Talents.T_CONGEAL_TIME]={base=2, every=5, max=5},
+		[Talents.T_MANATHRUST]={base=4, every=5, max=8},
+		[Talents.T_FREEZE]={base=4, every=5, max=8},
+		[Talents.T_PHASE_DOOR]=2,
+		[Talents.T_STRIKE]={base=3, every=5, max=7},
+
+		[Talents.T_WEAPONS_MASTERY]={base=3, every=4, max=7},
+		[Talents.T_STUNNING_BLOW]={base=1, every=5, max=5},
+		[Talents.T_RUSH]={base=4, every=5, max=8},
+		[Talents.T_SPELL_SHIELD]={base=4, every=5, max=8},
+		[Talents.T_BLINDING_SPEED]={base=4, every=5, max=8},
+		[Talents.T_PERFECT_STRIKE]={base=3, every=5, max=7},
 	},
 	resolvers.sustains_at_birth(),
 
@@ -150,17 +150,17 @@ newEntity{ define_as = "PALE_DRAKE",
 	resolvers.talents{
 		[Talents.T_SUMMON]=1,
 
-		[Talents.T_WILDFIRE]=5,
+		[Talents.T_WILDFIRE]={base=5, every=5, max=8},
 
-		[Talents.T_FLAME]=5,
-		[Talents.T_FLAMESHOCK]=5,
-		[Talents.T_INFERNO]=5,
-		[Talents.T_MANATHRUST]=5,
+		[Talents.T_FLAME]={base=5, every=5, max=8},
+		[Talents.T_FLAMESHOCK]={base=5, every=5, max=8},
+		[Talents.T_INFERNO]={base=5, every=5, max=8},
+		[Talents.T_MANATHRUST]={base=5, every=5, max=8},
 
-		[Talents.T_CURSE_OF_DEATH]=5,
-		[Talents.T_CURSE_OF_VULNERABILITY]=5,
-		[Talents.T_BONE_SPEAR]=5,
-		[Talents.T_DRAIN]=5,
+		[Talents.T_CURSE_OF_DEATH]={base=5, every=5, max=8},
+		[Talents.T_CURSE_OF_VULNERABILITY]={base=5, every=5, max=8},
+		[Talents.T_BONE_SPEAR]={base=5, every=5, max=8},
+		[Talents.T_DRAIN]={base=5, every=5, max=8},
 
 		[Talents.T_PHASE_DOOR]=2,
 	},
diff --git a/game/modules/tome/data/zones/flooded-cave/npcs.lua b/game/modules/tome/data/zones/flooded-cave/npcs.lua
index dbf8d00297c9479eb0a022e492090512559b17c9..3de55d4e2f4e94936bf832b280de482047555428 100644
--- a/game/modules/tome/data/zones/flooded-cave/npcs.lua
+++ b/game/modules/tome/data/zones/flooded-cave/npcs.lua
@@ -55,17 +55,17 @@ newEntity{ define_as = "UKLLMSWWIK",
 	resolvers.drops{chance=100, nb=10, {tome={money=1}} },
 
 	resolvers.talents{
-		[Talents.T_WEAPON_COMBAT]=5,
-		[Talents.T_KNOCKBACK]=3,
+		[Talents.T_WEAPON_COMBAT]={base=5, every=5, max=10},
+		[Talents.T_KNOCKBACK]={base=3, every=5, max=8},
 
-		[Talents.T_ICE_STORM]=4,
-		[Talents.T_FREEZE]=3,
+		[Talents.T_ICE_STORM]={base=4, every=5, max=8},
+		[Talents.T_FREEZE]={base=3, every=5, max=7},
 
-		[Talents.T_ICE_CLAW]=5,
-		[Talents.T_ICY_SKIN]=5,
-		[Talents.T_ICE_BREATH]=5,
-		[Talents.T_LIGHTNING_BREATH]=5,
-		[Talents.T_POISON_BREATH]=5,
+		[Talents.T_ICE_CLAW]={base=5, every=5, max=8},
+		[Talents.T_ICY_SKIN]={base=5, every=5, max=8},
+		[Talents.T_ICE_BREATH]={base=5, every=5, max=8},
+		[Talents.T_LIGHTNING_BREATH]={base=5, every=5, max=8},
+		[Talents.T_POISON_BREATH]={base=5, every=5, max=8},
 	},
 	resolvers.sustains_at_birth(),