Да! См. Windows SDK :)
Существует множество примеров сценариев, показывающих, как манипулировать файлами MSI с помощью API установщика Windows.
Сам файл MSI фактически никогда не сжимается, однако он может содержать встроенные CAB-файлы, которые могут быть сжаты.
Я бы предложил собрать некоторый скрипт, который извлекает любые встроенные CAB-файлы из MSI, распаковывает их по одному во временную папку, повторно сжимает с использованием лучшего сжатия, а затем заменяет несжатый CAB внутри MSI на вновь сжатый.
Любой инструмент, который вы можете найти, будет делать именно то, что я упомянул выше, однако, собрав его вместе, вы получите более глубокое понимание того, как работает MSI:)