Actually, I think it makes sense now. When you do a read, it reads a combination of the la_data_in and the current value that was written depending on the la_oen bits. I think it still would've made more sense to have dedicated input and output mapped addresses rather than a mix, but shrug