The endgame Sephiroth fight was definitely forced. It reeked of “well, he’s been the secret antagonist all game, so we can’t just disclude him from the finale” kind of thinking.
I liked the more persistent villain lurking in Cloud’s broken mind, but they shouldn’t have felt the need to try and put a pseudo capstone on that story thread.