Val vs const val, я знаю что у const val нет геттера, а какие еще отличия?
const - это константы времени компиляции.
После компиляции они исчезают(в байткоде их нет) и подставляются на место использования. Это позволяет, например, использовать их в аннотациях.
Также const вычисляется во время компиляции. 

Если написать так:
const val SUM = 1 + 2
someFunctionCall(SUM)
После компиляции получится(условно) так:
someFunctionCall(3)
const val - это константа времени компиляции. Её значение будет единым для всех
val - неизменяемое свойство (не имеет сеттера). Ну и тк это свойство - оно привязано к конкретному экземпляру.
https://kotlinlang.ru/docs/reference/properties.html
const val и val- это два разных инструмнета для разных задач.