1. Добавляешь новую стату (аля mpPercentConsume) в Skill. Затем двигаешься в сторону L2Character и ищешь использование mpConsume1 или mpConsume2 (в зависимости от того, когда нужно ману скушать - перед кастом или после) и реализуешь убавление маны типа такого:
double consumingMp = getStat().getMpPercentConsume(skill);
...
double maxMp = getMaxMp();
getStatus().reduceMp(maxMp * consumingMp);
При условии, что в mpPercentConsume хранятся значения от 0 до 1.
И не забываем о проверках на наличие нужного количества MP.
2. Смотри в сторону RequestShortCutReg.