diff --git a/L2J_DataPack_BETA/dist/game/data/html/signboards/pvp_signboard.htm b/L2J_DataPack_BETA/dist/game/data/html/signboards/pvp_signboard.htm
index cc77afd759fd2820fc7b29e9a66743cb318c4759..0d8357f283d0f2f2e16df7f3d0836786d3bbb218 100644
--- a/L2J_DataPack_BETA/dist/game/data/html/signboards/pvp_signboard.htm
+++ b/L2J_DataPack_BETA/dist/game/data/html/signboards/pvp_signboard.htm
@@ -1,3 +1,6 @@
-<html><head><body>Welcome to the <font color="LEVEL">Dueling Area</font>.<br>Fighting and killing does not lead to chaos here. Death does not cause forfeiture of experience points or items. You may fight, kill and die as you please.<br> The area outside the fence is a <font color="LEVEL">Peaceful Zone</font> where violence is not tolerated.<br>
+<html><body>
+Welcome to the <font color="LEVEL">Dueling Area</font>.<br>
+Fighting and killing does not lead to chaos here. Death does not cause forfeiture of experience points or items. You may fight, kill and die as you please.<br>
+The area outside the fence is a <font color="LEVEL">Peaceful Zone</font> where violence is not tolerated.<br>
 *Warning: If a chaotic character whose PK count is 6 or higher dies in a dueling arena, he/she has a chance of dropping an item.
 </body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/html/signboards/tomb_of_crystalgolem.htm b/L2J_DataPack_BETA/dist/game/data/html/signboards/tomb_of_crystalgolem.htm
index 36641eeeed5e99830dbfb05a6db2c940182c318f..7abf042a2ec9b62210d11d87818c9724d3c9e76a 100644
--- a/L2J_DataPack_BETA/dist/game/data/html/signboards/tomb_of_crystalgolem.htm
+++ b/L2J_DataPack_BETA/dist/game/data/html/signboards/tomb_of_crystalgolem.htm
@@ -1 +1,5 @@
-<html><head><body>Tomb of the Crystalline Golem:<br>Faint wavy writings grow clearer and bolder as you read:<br>...Long ago, Balor was gravely injured by the Water Dragon. Since then, he has feared the <font color="LEVEL">Water Dragon's Claw</font>... The claw has been passed down to the Dragon's children in the Chromatic Highlands...</body></html>
\ No newline at end of file
+<html><body>
+Tomb of the Crystalline Golem:<br>
+Faint wavy writings grow clearer and bolder as you read:<br>
+...Long ago, Balor was gravely injured by the Water Dragon. Since then, he has feared the <font color="LEVEL">Water Dragon's Claw</font>... The claw has been passed down to the Dragon's children in the Chromatic Highlands...
+</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2StaticObjectInstanceAction.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2StaticObjectInstanceAction.java
index 1de22682d060d96560089324356d0780cee99b3b..f222c6d9e86a8154b7d59948f06084b54d17acbf 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2StaticObjectInstanceAction.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2StaticObjectInstanceAction.java
@@ -28,37 +28,38 @@ import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 public class L2StaticObjectInstanceAction implements IActionHandler
 {
 	@Override
-	public boolean action(L2PcInstance activeChar, L2Object target, boolean interact)
+	public boolean action(final L2PcInstance activeChar, final L2Object target, final boolean interact)
 	{
-		if (((L2StaticObjectInstance) target).getType() < 0)
+		final L2StaticObjectInstance staticObject = (L2StaticObjectInstance) target;
+		if (staticObject.getType() < 0)
 		{
-			_log.info("L2StaticObjectInstance: StaticObject with invalid type! StaticObjectId: " + ((L2StaticObjectInstance) target).getStaticObjectId());
+			_log.info("L2StaticObjectInstance: StaticObject with invalid type! StaticObjectId: " + staticObject.getStaticObjectId());
 		}
 		
 		// Check if the L2PcInstance already target the L2NpcInstance
-		if (activeChar.getTarget() != target)
+		if (activeChar.getTarget() != staticObject)
 		{
 			// Set the target of the L2PcInstance activeChar
-			activeChar.setTarget(target);
-			activeChar.sendPacket(new MyTargetSelected(target.getObjectId(), 0));
+			activeChar.setTarget(staticObject);
+			activeChar.sendPacket(new MyTargetSelected(staticObject.getObjectId(), 0));
 		}
 		else if (interact)
 		{
-			activeChar.sendPacket(new MyTargetSelected(target.getObjectId(), 0));
+			activeChar.sendPacket(new MyTargetSelected(staticObject.getObjectId(), 0));
 			
 			// Calculate the distance between the L2PcInstance and the L2NpcInstance
-			if (!activeChar.isInsideRadius(target, L2Npc.INTERACTION_DISTANCE, false, false))
+			if (!activeChar.isInsideRadius(staticObject, L2Npc.INTERACTION_DISTANCE, false, false))
 			{
 				// Notify the L2PcInstance AI with AI_INTENTION_INTERACT
-				activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, target);
+				activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, staticObject);
 			}
 			else
 			{
-				if ((((L2StaticObjectInstance) target).getType() == 2) && (((L2StaticObjectInstance) target).getStaticObjectId() == 24230101))
+				if (staticObject.getType() == 2)
 				{
-					String filename = "data/html/signboards/tomb_of_crystalgolem.htm";
-					String content = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), filename);
-					NpcHtmlMessage html = new NpcHtmlMessage(target.getObjectId());
+					final String filename = (staticObject.getStaticObjectId() == 24230101) ? "data/html/signboards/pvp_signboard.htm" : "data/html/signboards/tomb_of_crystalgolem.htm";
+					final String content = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), filename);
+					final NpcHtmlMessage html = new NpcHtmlMessage(staticObject.getObjectId());
 					
 					if (content == null)
 					{
@@ -71,26 +72,9 @@ public class L2StaticObjectInstanceAction implements IActionHandler
 					
 					activeChar.sendPacket(html);
 				}
-				else if ((((L2StaticObjectInstance) target).getType() == 2) && (((L2StaticObjectInstance) target).getStaticObjectId() != 24230101))
+				else if (staticObject.getType() == 0)
 				{
-					String filename = "data/html/signboards/pvp_signboard.htm";
-					String content = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), filename);
-					NpcHtmlMessage html = new NpcHtmlMessage(target.getObjectId());
-					
-					if (content == null)
-					{
-						html.setHtml("<html><body>Signboard is missing:<br>" + filename + "</body></html>");
-					}
-					else
-					{
-						html.setHtml(content);
-					}
-					
-					activeChar.sendPacket(html);
-				}
-				else if (((L2StaticObjectInstance) target).getType() == 0)
-				{
-					activeChar.sendPacket(((L2StaticObjectInstance) target).getMap());
+					activeChar.sendPacket(staticObject.getMap());
 				}
 			}
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/transformations/LightPurpleManedHorse.java b/L2J_DataPack_BETA/dist/game/data/scripts/transformations/DarkmanePacer.java
similarity index 63%
rename from L2J_DataPack_BETA/dist/game/data/scripts/transformations/LightPurpleManedHorse.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/transformations/DarkmanePacer.java
index 7e8e8674830d231a5fbd88a4fc5619e3d17b4de2..005c4e2b9f4116ee0490bb11c2530797dcef7c8c 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/transformations/LightPurpleManedHorse.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/transformations/DarkmanePacer.java
@@ -4,10 +4,14 @@ import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.instancemanager.TransformationManager;
 import com.l2jserver.gameserver.model.L2Transformation;
 
-public class LightPurpleManedHorse extends L2Transformation
+public class DarkmanePacer extends L2Transformation
 {
-	private static final int[] SKILLS = {5491,839};
-	public LightPurpleManedHorse()
+	private static final int[] SKILLS =
+	{
+		5437, 839
+	};
+	
+	public DarkmanePacer()
 	{
 		// id, colRadius, colHeight
 		super(106, 31, 32.5);
@@ -16,16 +20,18 @@ public class LightPurpleManedHorse extends L2Transformation
 	@Override
 	public void onTransform()
 	{
-		if (getPlayer().getTransformationId() != 106 || getPlayer().isCursedWeaponEquipped())
+		if ((getPlayer().getTransformationId() != 106) || getPlayer().isCursedWeaponEquipped())
+		{
 			return;
+		}
 		
 		transformedSkills();
 	}
 	
 	public void transformedSkills()
 	{
-		// Decrease Bow/Crossbow Attack Speed
-		getPlayer().addSkill(SkillTable.getInstance().getInfo(5491, 1), false);
+		// Dissonance
+		getPlayer().addSkill(SkillTable.getInstance().getInfo(5437, 2), false);
 		// Dismount
 		getPlayer().addSkill(SkillTable.getInstance().getInfo(839, 1), false);
 		
@@ -40,8 +46,8 @@ public class LightPurpleManedHorse extends L2Transformation
 	
 	public void removeSkills()
 	{
-		// Decrease Bow/Crossbow Attack Speed
-		getPlayer().removeSkill(SkillTable.getInstance().getInfo(5491, 1), false);
+		// Dissonance
+		getPlayer().removeSkill(SkillTable.getInstance().getInfo(5437, 2), false);
 		// Dismount
 		getPlayer().removeSkill(SkillTable.getInstance().getInfo(839, 1), false);
 		
@@ -50,6 +56,6 @@ public class LightPurpleManedHorse extends L2Transformation
 	
 	public static void main(String[] args)
 	{
-		TransformationManager.getInstance().registerTransformation(new LightPurpleManedHorse());
+		TransformationManager.getInstance().registerTransformation(new DarkmanePacer());
 	}
 }
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/transformations/Treykan.java b/L2J_DataPack_BETA/dist/game/data/scripts/transformations/Treykan.java
index 4d349d9ad0a0e9cebf5665b071fae0a0c22f9def..2a110ef7169c4db84dc7f81c248d13a55c53e64b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/transformations/Treykan.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/transformations/Treykan.java
@@ -6,7 +6,10 @@ import com.l2jserver.gameserver.model.L2Transformation;
 
 public class Treykan extends L2Transformation
 {
-	private static final int[] SKILLS = new int[]{619};
+	private static final int[] SKILLS = new int[]
+	{
+		619, 967, 968, 969, 5437
+	};
 	
 	public Treykan()
 	{
@@ -17,8 +20,10 @@ public class Treykan extends L2Transformation
 	@Override
 	public void onTransform()
 	{
-		if (getPlayer().getTransformationId() != 126 || getPlayer().isCursedWeaponEquipped())
+		if ((getPlayer().getTransformationId() != 126) || getPlayer().isCursedWeaponEquipped())
+		{
 			return;
+		}
 		
 		transformedSkills();
 	}
@@ -27,6 +32,14 @@ public class Treykan extends L2Transformation
 	{
 		// Transform Dispel
 		getPlayer().addSkill(SkillTable.getInstance().getInfo(619, 1), false);
+		// Cursed Body
+		getPlayer().addSkill(SkillTable.getInstance().getInfo(967, 1), false);
+		// Treykan Claw
+		getPlayer().addSkill(SkillTable.getInstance().getInfo(968, 1), false);
+		// Treykan Dash
+		getPlayer().addSkill(SkillTable.getInstance().getInfo(969, 1), false);
+		// Dissonance
+		getPlayer().addSkill(SkillTable.getInstance().getInfo(5437, 1), false);
 		
 		getPlayer().setTransformAllowedSkills(SKILLS);
 	}
@@ -41,6 +54,14 @@ public class Treykan extends L2Transformation
 	{
 		// Transform Dispel
 		getPlayer().removeSkill(SkillTable.getInstance().getInfo(619, 1), false);
+		// Cursed Body
+		getPlayer().removeSkill(SkillTable.getInstance().getInfo(967, 1), false);
+		// Treykan Claw
+		getPlayer().removeSkill(SkillTable.getInstance().getInfo(968, 1), false);
+		// Treykan Dash
+		getPlayer().removeSkill(SkillTable.getInstance().getInfo(969, 1), false);
+		// Dissonance
+		getPlayer().removeSkill(SkillTable.getInstance().getInfo(5437, 1), false);
 		
 		getPlayer().setTransformAllowedSkills(EMPTY_ARRAY);
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00900-00999.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00900-00999.xml
index 879478b5dee86b31ce763bbcb18dbcebb173c319..915f1f7780b12e8216f5133ff1d0c980ae9133ac 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00900-00999.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00900-00999.xml
@@ -1257,9 +1257,10 @@
 	<skill id="967" levels="1" name="Cursed Body">
 		<!-- Cursed body. Recovery is not possible. -->
 		<set name="magicLvl" val="85" />
-		<set name="skillType" val="NOTDONE" />
 		<set name="operateType" val="OP_PASSIVE" />
-		<set name="target" val="TARGET_NONE" />
+		<set name="skillType" val="BUFF" />
+		<set name="target" val="TARGET_SELF" />
+		<!-- TODO: Implement and use proper effects. -->
 	</skill>
 	<skill id="968" levels="1" name="Treykan Claw">
 		<!-- Confirmed CT2.5 -->
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/05400-05499.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/05400-05499.xml
index 4a748bac3db2cb5129ce1312baacf146442b4ff4..9f58852ef32bbb948120fdb2e94406bf66fb0e1d 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/05400-05499.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/05400-05499.xml
@@ -403,14 +403,20 @@
 		<set name="operateType" val="OP_PASSIVE" />
 	</skill>
 	<skill id="5437" levels="2" name="Dissonance">
-		<set name="target" val="TARGET_SELF" />
-		<set name="skillType" val="BUFF" />
+		<!-- Confirmed CT2.5 -->
+		<table name="#def"> 0.6 1 </table>
+		<table name="#avoid"> 50 0 </table>
 		<set name="operateType" val="OP_PASSIVE" />
+		<set name="skillType" val="BUFF" />
+		<set name="target" val="TARGET_SELF" />
 		<for>
 			<mul order="0x30" stat="pAtk" val="0.95" />
 			<mul order="0x30" stat="mAtk" val="0.95" />
 			<sub order="0x40" stat="accCombat" val="50" />
 			<add order="0x40" stat="runSpd" val="5" />
+			<mul order="0x30" stat="pDef" val="#def" />
+			<mul order="0x30" stat="mDef" val="#def" />
+			<sub order="0x40" stat="rEvas" val="#avoid" />
 		</for>
 	</skill>
 	<skill id="5438" levels="9" name="NPC party 30 Clan Heal">