Саш, не надо в ядро лезть. Утопия это.
Со ссылками эти действительно проблема (которые в других контекстах находятся), и пути генерирует не совсем сам MODx (имею ввиду именно класс MODx), а modContext. В итоге, чтобы влезть в эту логику, я раньше использовал собственный класс парсера ShopmodxParser. В последних версиях пакета я его исключил за ненадобностью, но в прошлых коммитах откопать можно. Смотри, там собственный класс линк-тега ShopmodxLinkTag, и он вызывается как раз на обработку линков. К сожалению, modParser написан далеко не идеально, и расширять его крайне не удобно. То есть чтобы вот просто логику обработку тегов изменить, приходится полпарсера копипастить.
Как подключить свой парсер, смотри метод MODx::getParser(). Просто указываешь системную настройку parser_class и все. В нашем случае это classes.ShopmodxParser