Может, я невнимательно прочитал ветку, но исключение родителя из адреса можно легко сделать без изменений в ядре, плагином на OnDocFormSave.
Немного сумбурно, но все же:
<?php
if ($modx->event->name == 'OnDocFormSave') {
$depth = 4;
$parent = 2;
$id = $resource->get('id');
//Если у ресурса уже стоит галочка на перезапись alias-а, выходим
if ($resource->get('uri_override') == 1) return;
$docParent = $resource->get('parent');
$parentIds = $modx->getParentIds($id, $depth, array('context' => 'web'));
if (count($parentIds) == 0 && $docParent != $parent) $parentIds = $modx->getParentIds($docParent, $depth, array('context' => 'web'));
elseif ($docParent == $parent) $parentIds[] = $parent;
//Если сохраняется документ не из нужной нам ветки $parent, выходим
if (!in_array($parent, $parentIds)) return ;
$alias = str_replace($modx->makeUrl($parent), '', $modx->makeUrl($id));
$resource->set('uri', $alias);
$resource->set('uri_override', true);
$resource->save();
}
В этом примере исключаем алиас родителя с id=2 на вложенности до 4 уровней в ветке.
Соответственно, если нужно исключать на большей вложенности, увеличиваем $depth, а если нужно исключать несколько родителей, это несложно переделать на массив с нужными id.